自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 二刷Ribbon源码

第N次看Ribbon源码

2020-05-09 14:19:56 317

原创 为什么建议框架源码学习从Mybatis开始

为什么建议框架源码学习从Mybatis开始

2020-05-27 09:31:14 572

原创 带着这两点看Springboot源码

SPI与伴随事件的生命周期,抓住Springboot的七寸

2020-05-24 16:59:10 539

原创 看穿面试题--Spring循环依赖--背后的秘密

面试爱问Spring循环依赖,为什么?

2020-05-22 14:27:11 666

原创 享读SpringMVC源码5-异常处理HandlerExceptionResolver

异常处理好,每天睡的早文章目录场景分析Servlet+tomcat时代springmvc时代HandlerExceptionResolver异常时避免不了的的。我们能做的就是减少异常, 以及做好异常的处理。本文说说SpringMVC中的异常处理。场景分析我们在写业务代码时,多多少少会自发的做一些异常的捕获,或者处理。这里有两个问题:你不可能处理到大多数异常大量的try cat...

2020-05-05 18:30:09 440

原创 Springboot整合Hibernate拦截器EmptyInterceptor

Springboot整合Hibernate拦截器EmptyInterceptor

2020-04-20 10:02:17 4964 2

原创 从框架源码学设计模式之组合模式(1)

很多框架中用到了组合模式,优点: 1、高层模块调用简单。 2、节点自由增加。

2020-04-09 16:04:59 488 1

原创 享读SpringMVC源码0--从Tomcat到SpringMVC

Tomcat与SpringMVC的联系点就在DispatcherServlet. 本节讲讲两者之间是如何联系在一起的

2020-03-16 22:02:41 296

原创 享读SpringMVC源码4-感谢RequestMappingHandlerAdapter

当我们享受参数接收便利的同时,不得不不感谢RequestMappingHandlerAdapter背后所做的工作

2020-03-15 15:30:10 224

原创 由浅入深理解SpringSecurityOauth2框架原理

图解Oauth2框架那些事

2020-03-14 10:24:38 2294 4

原创 Mybatis源码系列6-独秀日志模块

文章目录日志适配器模式日志级别日志的使用普通使用代理模式Mybatis本身不提供日志实现,而是兼容第三方日志框架,如:slf4J , commonsLoging , Log4J2 , Log4J , JdkLog。为了兼容和使用第三方日志框架,Mybatis进行了优秀的设计。Mybatis的日志模块可以用两个知识点概括:适配器模式,代理模式

2020-01-10 14:54:28 235

原创 Mybatis源码系列5-二级缓存

在二级缓存的设计上,MyBatis大量地运用了装饰者模式,如CachingExecutor, 以及各种Cache接口的装饰器

2020-01-06 09:33:04 315

原创 Mybatis源码系列4-一级缓存

一级缓存是为了提高单个sqlsession的查询效率,但是他真的有必要吗?

2020-01-02 00:05:42 232

原创 Transaction与SqlSession,Connection的关系

Transaction与SqlSession,Connection的关系

2019-12-30 09:18:28 3421

原创 Mybatis源码系列3-三种SqlSession的区别

DefaultSqlSession与SqlSessionManager 与SqlSessionTemplate 是我常见的3种sqlsesion,他们之间的区别是啥?

2019-12-29 14:47:31 1151

原创 Mybatis源码系列2-Mapper原理

Mapper通过保存SQL模板与方法之间的映射关系+动态代理技术,完美的解决SQL定位问题

2019-12-27 09:23:24 245

原创 Mybatis源码系列1-Mybatis的初始化

Mybatis初始化的过程,其就是Config配置文件,Mapper文件被解析, Configuration对象被创建的过程。

2019-12-27 09:11:07 300

原创 Mybatis源码系列0-从JDBC到Mybatis

本文主要讲解JDBC怎么演变到Mybatis的渐变过程

2019-12-27 09:10:34 273

原创 Dubbo源码阅读前夜-SPI的本质

SPI 在spring,dubbo中扮演了重要角色,SPI到底是个什么东西?本文一一揭开

2019-12-01 16:47:28 386

原创 @LoadBalanced注解的RestTemplate拥有负载均衡的能力

在springcloud体系中,当我们使用注解@LoadBalanced标注RestTemplate,RestTemplate就具有负载均衡的能力。其背后的原理是啥?

2019-11-30 18:21:06 1063 3

原创 发送http请求(2):RestTemplate发送http请求

RestTemplate统一了发送请求的方式,使的发送请求变的更加的高效,灵活。

2019-11-30 18:07:41 823

原创 发送http请求(1):发送http请求的几种方式

平时开发中,遇到很多发送请求的方式,这些方式有啥联系,该用哪个?

2019-11-30 17:58:52 1905

原创 Springcloud源码阅读4:Ribbon客户端负载均衡(下)

Ribbon的各个组件时在什么地方注册的?又起了什么作用?本节揭晓

2019-11-30 17:54:32 358

原创 Springcloud源码阅读3:Ribbon实现客户端负载均衡(上)

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它封装Netflix Ribbon实现,

2019-11-30 17:43:49 306

原创 SpringCloud源码阅读2-Eureka客户端原理

本文讲述Eureka客户端如何注册到注册中心?

2019-11-30 13:32:59 367

原创 SpringCloud源码阅读1-Eureka服务端的秘密

Eureka注册中心的原理

2019-11-30 13:29:07 524

原创 SpringCloud源码阅读0-SpringCloud必备知识

SpringCloud 是一系列微服务工具项目的**集合**。这个集合包含如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等工具。

2019-11-14 16:00:32 425

原创 ThreadLocal尾篇-ThreadLocal内存泄漏到底因为啥

ThreadLocal真的是因为弱引用造成的内存泄漏吗

2019-11-13 11:35:16 477

原创 ThreadLocal中篇:解开ThreadLocal的神秘面纱

ThreadLocal 用来提供线程级别变量,变量只对当前线程可见。相比与使用锁控制共享变量访问顺序的解决方案。 ThreadLocal通过 空间换时间的方案,规避了竞争问题,每个线程都有属于自己的变量

2019-11-13 09:24:59 240

原创 springcloud注册hostname或者ip那点事

了解了注册hostname/ip的原理,当我们遇到注册问题时,就会有方向去解决

2019-11-13 09:13:09 1153

原创 ThreadLocal前奏:我理解的java四种引用类型

引用与对象java中我们通过一个引用指向内存中一块对象。//创建一个引用,引用可以独立存在,并不一定需要与一个对象关联User user;user = new User();user是引用, 通过‘=’指向了内存中的对象。四种引用以GC的角度来看着四种引用强引用:平时我们使用的都是强引用。User user;user = new User();user就是强引用。 ...

2019-11-12 14:36:14 304

原创 @PropertySource和@ConfigurationProperties区别

@PropertySource和@ConfigurationProperties两个注解在阅读spring体系框架中,非常常见。熟知其原理,对于我们理解源码非常重要

2019-11-12 11:17:51 4228 2

原创 spring事务的三个坑

事务虽然给我带来了方便,但是因为代理类的生成,有一些隐形的调用存在,导致了我们错误的判断了调用链,带来一些错误。

2019-11-06 09:20:29 473

原创 spring源码系列11:事务代理对象的执行

事务代理的执行,其实就是在AOP基础上的建立起来的。关键是理解TransactionInterceptor(Advice)。在目标方法执行前后对其进行事务控制的增强。

2019-11-06 09:08:39 368

原创 spring源码系列10:AOP代理对象的执行

说完了AOP代理对象的创建,事务代理对象的创建,这文,讲讲AOP代理对象执行回顾:静态代理与JDK动态代理与CGLIB动态代理Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别spring源码系列8:AOP源码解析之代理的创建在静态代理与JDK动态代理与CGLIB动态代理这一节我们讲过:JDK动态代理执...

2019-11-05 09:06:33 302

原创 spring源码系列9:AOP源码解析之事务代理的创建

回顾下AOP:springAOP是基于JDK动态代理与CGLB动态代理上节我们总结出JDK动态代理(Proxy+InvocationHandler)+advisedCGLB动态代理(Enhancer+MethodInterceptor)+advised本质的表现其实就是在内存中生成了新的字节码类文件。这节我们看看事务是如何在利用AOP创建代理的。一、@EnableTransact...

2019-11-04 18:41:06 982

原创 spring源码系列8:AOP源码解析之代理的创建

springaop 底层还是JDK动态代理,CGLB动态代理。通过把增强器封装到Advised中,把Advised与InvocationHandler或者MethodInterceptor联系起来,完美的实现AOP技术

2019-11-01 17:39:02 281

原创 静态代理与JDK动态代理与CGLIB动态代理

要素是手段,字节码才是目的。JVM并不关心你java代码,他关心的是在内存中可被使用的字节码。

2019-10-31 17:49:26 369

原创 spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别

BeanPostProcessor 本身就是一种拦截的设计思想. 拦截的目的就是做额外的操作, 即 扩展。

2019-10-31 17:47:01 576

原创 spring源码分析6: ApplicationContext的初始化与BeanDefinition的搜集入库

先前几篇都是概念的讲解:回顾下BeanDefinition 是物料Bean是成品BeanFactory是仓库,存储物料与成品ApplicationContext初始化搜集物料入库,触发生产线,取出物料生产Bean本文研究springboot环境下,ApplicationContext的初始化, 多是处理注解形式的Bean.重要组件1.PostProcessorRegistrati...

2019-10-18 17:08:35 399

空空如也

空空如也

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

TA关注的人

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