自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做一个认真的程序员

好好学习,天天向上

  • 博客(164)
  • 收藏
  • 关注

原创 Spring官网阅读 | 总结篇

接近用了4个多月的时间,完成了整个《Spring官网阅读》系列的文章,本文主要对本系列所有的文章做一个总结,同时也将所有的目录汇总成一篇文章方便各位读者来阅读。下面这张图是我整个的写作大纲对应的文章目录汇总如下:Spring官网阅读(一)容器及实例化本文主要涉及到官网中的1.2,1.3节。主要介绍了什么是容器,容器如何工作。Spring官网阅读(二)(依赖注入及方法注入)本文...

2020-04-14 21:25:45 19130 17

原创 数据结构与算法 | 总结篇

为方便大家阅读,所以将《数据结构与算法》专栏目录进行一次整理:该文章会随专栏一起更新专栏目录如下:基础篇:算法| 再也不怕被问时间复杂度了 (上)算法| 再也不怕被问时间复杂度了 (下)数据结构| 数组为什么这么快?数据结构 | 再也不怕被问链表了算法 | 链表的应用,约瑟夫问题算法 | 链表的应用,缓存失效算法数据结构 | 再也不怕被问栈跟队列了...

2019-08-05 23:12:44 1363 6

原创 推荐一个好用的工具

最近新电脑到了,免不了又要一顿折腾,正好趁这个机会搜罗一下有没有什么好用软件,在我平常的开发中,少不了一边在某信上摸摸鱼,一边在IDEA里面撸撸码在这个过程中少不了要切换输入法,但是随着摸鱼频次变高,输入法切换错误的次数越来越多,今天给大家推荐的工具就是为了解决这个问题的。工具名称:Input Source Pro适用系统:Mac OS下载地址:https://inputsource.pro/zh...

2024-04-23 21:35:30 199

原创 改个名,恢复更新啦

兄弟们,工作换好了,后面恢复更新啦!公众号准备改个名决定了,就叫明智说给兄弟们准备了这次我准备面试的思维导图图片太大,文章放不下,公开分享的链接在这里:https://www.processon.com/view/link/662516c2b642db52e472d3cc...

2024-04-21 21:41:09 154

原创 HttpClient的释放资源到底在释放什么?如何正确的释放资源?

本文主要想聊一聊ApacheHttpClient中资源释放的那些事,如果对它不够了解的话可以参考下面的思维导图:链接:https://www.processon.com/view/link/641ef425fc0140496f0a3961我们常用的资源释放的API可以分为下面几类HttpRequestBase对象的跟abort方法,HttpGet、HttpPost都继承了这个类。

2023-03-26 01:10:23 1467 1

原创 Dubbo的独门绝技,SPI实现原理分析

在上篇文章我们已经对Dubbo中的SPI有了简单的了解,接下来我们通过源码详细了解其实现细节。在本文中,我将SPI分为普通SPI,与之相对应的是自适应SPI,这个概念是笔者“捏造”的,为了更好的划分文章结构,读者不必纠结字眼。可以看到这个接口继承了Prioritized,Prioritized的主要作用是定义加载的优先级。LoadingStrategy的作用在于定义加载SPI配置文件时的策略,例如:从哪个目录下加载、哪些不需要加载等。

2023-03-22 19:34:45 698 2

原创 Dubbo之外,一文看懂jdk、dubbo、spring中的SPI

这篇文章我们主要学习Dubbo中的SPI机制,为什么专栏开篇我们就要学些SPI呢?主要是因为,Dubbo采用的是Microkernel(微内核)+Plugin(插件)的设计方式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。上面这段话当然不是我瞎掰的,其实是官网原话基于此,我们想要对Dubbo有深入的了解,首先要学习便是其SPI机制的实现原理。

2023-03-20 21:08:49 599

原创 Http实战之编码、分块传输、范围请求

本系列文章:1、《Http实战之Wireshark抓包分析》2、《Http实战之无状态协议、keep-alive分析》3、《Http实战之缓存、重定向》本文为《Http实战》系列最后一篇,本文主要探讨在使用HTTP协议进行大文件传输时我们经常会使用到的三个特性在介绍这部分内容之前有必要对一个概念进行说明:实体。如果把 HTTP报文想象成因特网货运系统中的箱子,那么 HTTP实体就是报文中实际的货物。下图展示了一个简单的实体,封装在 HTTP 响应报文中。实体首部指出这是一个纯文本文档(Content-Typ

2022-10-31 09:53:23 1509 7

原创 Http实战之缓存、重定向

上篇文章我们已经介绍了http协议的`「无状态特性以」`及它的`「keep-alive」`机制,本文我们继续学习http协议的其它内容,首先我们从**【缓存】**聊起

2022-07-21 23:12:55 533 12

原创 Http实战之无状态协议、keep-alive分析

HTTP 是一种不保存状态,即无状态(stateless)协议。 HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求和响应都不做持久化处理。使用 HTTP 协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸展性,而特意把 HTTP 协议设计成如此简单。我们来看下面这个例子:【有状态】:【无状态】:可以看到如果是有状态协议,在,本次请求会依赖也可以依赖上次请求的

2022-07-04 09:35:15 1180 4

原创 Http实战之Wireshark抓包分析

我们选用netty搭建一个服务端,使用httpclient来实现http客户端。代码如下:pom文件引入依赖:服务端代码:客户端代码如下:我们将服务端启动后,运行客户端正常输出“Hello World”说明项目搭建成功Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。下载成功后,我们打开主界面如下:这里我们看到的这个列表是我们本机的网卡列表,我们在抓包之前要确认具体的网卡,常用的网卡就

2022-07-01 23:01:19 12059 8

原创 只要我跑的够快,内卷它就卷不到我,一名高中生是如何做到在疫情下涨薪70%的?

前言最近刚刚入职,确实很忙,大周末的跑到公司来研究Apollo的源码。但是答应了群友出一篇面试的文章,所以想来想去先把文章写了再说。先大概说下我的面试经历吧笔者是从9月3号开始面试的,9月15号入职了微盟,目前是微盟基础技术中心的一名高级开发工程师。期间一共面试了9家公司,其中4家确定了offer跟具体薪资。两家过了所有技术面,到HR面之后没回应了,估计是觉得我薪资要的比较高,笔者这次跳槽薪资涨幅还是比较满意的,月薪的话上涨了70%。剩下还有3家,一家是在我入职后才通知我去公司做最后一轮面试,直接

2020-09-20 09:57:22 4366 23

原创 聊一聊使用事务时(@Transactional)可能出现的问题

介绍了在使用Spring事务中可能碰到的各种问题。例如事务失效、事务回滚异常、读写分离下事务如何处理等

2020-08-20 08:11:31 6370 40

原创 一个@Transaction哪里来这么多坑?

点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言在之前的文章中已经对Spring中的事务做了详细的分析了,这篇文章我们来聊一聊平常工作时使用事务可能出现的一些问题(本文主要...

2020-08-19 20:45:00 36

原创 Spring事务专题(五)聊聊Spring事务到底是如何实现的

前言本专题大纲:本文为本专题倒数第二篇文章。在上篇文章中我们一起学习了Spring中的事务抽象机制以及动手模拟了一下Spring中的事务管理机制,那么本文我们就通过源码来分析一下Spring中的事务管理到底是如何实现的,本文将选用Spring5.2.x版本。从@EnableTransactionManagement开始Spring事务管理的入口就是@EnableTransactionManagement注解,所以我们直接从这个注解入手,其源码如下:public @interface Enabl

2020-08-17 11:27:18 3266 27

原创 Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现

点击蓝色“程序员DMZ ”关注我哟好看记得加个“星标”哈!前言本专题大纲如下:事务专题大纲「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事务专题的收尾篇,也是我Spring源码专题的收尾篇。本文大纲如下:Spring事务应用大纲在看这篇文章,以及下篇源码分析的文章我希望你对Spring AOP以及有充分的了解,不然一些细节问题你可能看不明白,关于Spring AOP如果

2020-08-09 11:57:56 2335 28

原创 事务的基本概念及Mysql事务实现原理

Spring事务专题(三)事务的基本概念,Mysql事务处理原理及Spring中事务的使用示例前言本专题大纲:我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可以直接跳过本文,等待接下来两篇应用及源码分析,不过我觉得知识的学习应该慢慢行成一个体系,为了建立一个完善的体系应该要对数据库本身事务的实现有一定认知才行。本文为Spring事务专题第三篇,在前两篇文章中我们已经对

2020-08-01 14:46:19 2587 13

原创 Spring事务专题(三)事务的基本概念,Mysql事务处理原理

点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言本专题大纲:专栏大纲我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,...

2020-08-01 13:09:19 35

原创 Spring事务源码分析专题(二)Mybatis的使用及跟Spring整合原理分析

点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言专题要点如下:本文要解决的是第二点,Mybatis的使用、原理及跟Spring整合原理分析。Mybatis的简单使用搭建项目...

2020-07-23 07:30:00 2357 17

原创 Spring中异步注解@Async的使用、原理及使用时可能导致的问题

前言其实最近都在研究事务相关的内容,之所以写这么一篇文章是因为前面写了一篇关于循环依赖的文章:《面试必杀技,讲一讲Spring中的循环依赖》然后,很多同学碰到了下面这个问题,添加了Spring提供的一个异步注解@Async循环依赖无法被解决了,下面是一些读者的留言跟群里同学碰到的问题:本着讲一个知识点就要讲明白、讲透彻的原则,我决定单独写一篇这样的文章对@Async这个注解做一下详细的介绍,这个注解带来的问题远远不止循环依赖这么简单,如果对它不够熟悉的话建议慎用。文章要点@Async的基本

2020-07-21 22:03:45 4013 26

原创 Spring事务源码分析专题(一)JdbcTemplate使用及源码分析

点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!Spring中的数据访问,JdbcTemplate使用及源码分析前言本系列文章为事务专栏分析文章,整个事务分析专题将按下面这张图...

2020-07-21 10:53:32 3019 40

原创 如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章

前言当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图:先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背?究其原...

2020-07-14 21:03:04 6673 38

原创 面试必杀技,讲一讲Spring中的循环依赖

本系列文章:听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 Spring中AOP相关的API及源码解析,原来AOP是这样子的你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?推荐阅读:Spring官网阅读 .

2020-07-06 17:59:24 44554 82

原创 你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?

聊一聊Spring是怎么将AOP应用到Bean的生命周期中的?本系列文章:听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 Spring中AOP相关的API及源码解析,原来AOP是这样子的推荐阅读:Spring官网阅读 |

2020-07-05 16:49:58 15666 13

原创 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译

源码学习第一步,Spring源码编译之所以写这么一篇文章是因为群里的小伙伴在编译源码时碰到了问题,再加上笔者自身正准备做一个源码的注释版本,恰好也需要重新编译一份代码,至于为什么要将源码编译到本地就不用多说了吧?比如,你可以任意的添加注释,一边读源码一边记笔记,甚至你可以修改源码,更好的调试程序等等。但是如果你坚持通过导入依赖或者引入jar包的方式来学习源码,我觉得也可以,没有最好的,只有最适合自己的!话不多说,我们开始正题本文将严格按照官方介绍的步骤一步步进行编译,对应的官方链接:https

2020-07-03 18:03:25 6812 26

原创 Spring中AOP相关的API及源码解析,原来AOP是这样子的

Spring中AOP相关的API及源码解析本系列文章:读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 推荐阅读:Spring官网阅读 | 总结篇Spring杂谈本系列文章将会带你一行行的将Spring的源码吃透,推荐阅读的文章是阅读源码的基础!因为本文会涉及到动态代理的相关内容,如果对动态代理不

2020-07-02 19:27:25 14928 11

原创 这篇文章,我们来谈一谈Spring中的属性注入

本系列文章:读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?推荐阅读:Spring官网阅读 | 总结篇Spring杂谈本系列文章将会带你一行行的将Spring的源码吃透,推荐阅读的文章是阅读源码的基础!前言在前面的文章中已经知道了Spring是如何将一个对象创建出来的,那么紧接着,Spring就需要将这个对象变成一个真正的Bean了,这个过程.

2020-06-21 20:08:19 4440 17

原创 从字符串到常量池,一文看懂String类

从字符串到常量池,一文看懂String类设计从一道面试题开始看到这个标题,你肯定以为我又要讲这道面试题了// 这行代码创建了几个对象?String s3 = new String("1");是的,没错,我确实要从这里开始这道题就算你没做过也肯定看到,总所周知,它创建了两个对象,一个位于堆上,一个位于常量池中。这个答案粗看起来是没有任何问题的,但是仔细思考确经不起推敲。如果你觉得我说的不对的话,那么可以思考下面这两个问题你说它创建了两个对象,那么这两个对象分别是怎样创建的呢?我们回

2020-06-17 03:08:39 2622 14

原创 Spring杂谈 | 从桥接方法到JVM方法调用

前言之所以写这么一篇文章是因为在Spring中,经常会出现下面这种代码// 判断是否是桥接方法,如果是的话就返回这个方法BridgeMethodResolver.findBridgedMethod(specificMethod);这些代码对我之前也造成了不小疑惑,在彻底弄懂后通过本文分享出来,也能减少大家在阅读代码过程中的障碍!桥接方法什么时候会出现桥接方法?第一种情况:方法重写的时候子父类方法返回值不一致导致public class Parent { public Number

2020-06-08 23:45:25 2150 5

原创 学习源码的第八个月,我成了Spring的开源贡献者

在创作上篇文章《谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?》我给Spring提交了两个issue,其中一个已经被接受了

2020-06-02 23:09:57 3493 12

原创 谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?

5w字长文带你彻底看懂Spring是怎么创建对象的!附10几张图,在创作这篇文章的过程中给官方提交了两个issue

2020-06-02 00:28:33 19042 30

原创 配置类为什么要添加@Configuration注解?

本系列文章将会带你一行行的将Spring的源码吃透,做到彻底精通Spring

2020-05-13 21:40:47 13884 27

原创 你知道Spring是怎么解析配置类的吗?

上篇文章我们已经阅读了Spring的第一行代理,本文我们将继续接着上文往下读,让我带着你一行行读完Spriing,3w字长文带你彻底看懂配置类的解析,包括@Import注解原理,@Bean注解原理等等~

2020-05-09 00:07:06 5733 29

原创 读源码,我们可以从第一行读起

这里说的可以从第一行开始,而不是一定要从第一行开始,本系列的文章是为了精通Spring,所以在这个过程中会有很多细节,如果大家不感兴趣的话,可以跳过这些细节,只关注其中的主干部分。如果能认真阅读本系列的文章,一定能减少源码阅读过程中的障碍。本文主要关注Spring中的AnnotatedBeanDefinitionReader

2020-04-21 21:16:22 8976 12

原创 Spring杂谈 | Spring中的AutowireCandidateResolver

Spring中的AutowireCandidateResolver,我们一起看看Spring到底是怎么处理依赖,到底是怎么判断一个bean能否被注入呢?

2020-04-21 18:27:24 11187 13

原创 Spring官网阅读(十八)AOP的核心概念

这里写目录标题什么是AOPAOP中的核心概念切面通知切点引入目标对象代理对象织入Spring中如何使用AOP1、开启AOP2、申明切面3、申明切点切点表达式excecution表达式语法示例@annotation表达式语法示例within表达式语法示例@within表达式语法示例arg表达式语法示例@args表达式语法示例this表达式target表达式定义切点4、申明通知通知的类型BeforeA...

2020-04-13 23:11:41 5722 18

原创 Spring官网阅读(十七)Spring中的数据校验

在前文中我们一起学习了Spring中的数据绑定,也就是整个DataBinder的体系,其中有提到DataBinder跟校验相关。可能对于Spring中的校验大部分同学跟我一一样,都只是知道可以通过@Valid / @Validated来对接口的入参进行校验,但是对于其底层的具体实现以及一些细节都不是很清楚,通过这篇文章我们就来彻底搞懂Spring中的校验机制。在学习Spring中某个功能时,往...

2020-04-09 00:19:20 2496 12

原创 面试官:你说你懂动态代理,那你知道为什么JDK中的代理类都要继承Proxy吗?

之前我已经写过了关于动态代理的两篇文章,本来以为这块应该没啥问题,没想到今天又被难住了…太难了!!!之前文章的链接:动态代理学习(一)自己动手模拟JDK动态代理、动态代理学习(二)JDK动态代理源码分析...

2020-04-07 22:04:29 3472 21

原创 面试官:你说你懂i++跟++i的区别,那你会做下面这道题吗?

面试官:你说你懂i++跟++i的区别,那你会做下面这道题吗?面试官:“说一说i++跟++i的区别”我:“i++是先把i的值拿出来使用,然后再对i+1,++i是先对i+1,然后再去使用i”面试官:“那你看看下面这段代码,运行结果是什么?”public static void main(String[] args) { int j = 0; for (int i = 0; i ...

2020-04-07 00:05:01 39423 229

原创 Spring官网阅读(十六)Spring中的数据绑定

在前面的文章我们学习过了Spring中的类型转换以及格式化,对于这两个功能一个很重要的应用场景就是应用于我们在XML中配置的Bean的属性值上,如下:<bean class="com.dmz.official.converter.service.IndexService" name="indexService"> <property name="name" value="...

2020-04-05 20:56:25 3444 23

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除