摘要:
目标: 1.什么是AOP, 什么是AspectJ, 2. 什么是Spring AOP 3. Spring AOP注解版实现原理 4. Spring AOP切面原理解析 一. 认识AOP 1.1 什么是AOP aop是面向切面编程,相比传统oop,aop能够在方法的前置,中置,后置中插入逻辑代码,对于 阅读全文
摘要:
目标: 1. 监听器如何使用 2. 监听器的原理 3. 监听器的类型 4. 多播器的概念和作用 5. 接口类型的监听器是如何注册的? 6. 注解类型的监听器和如何注册的? 7. 如果想在所有的bean都加载完成以后做一些事情, 怎么办? 一. 监听器的使用 为什么要学习监听器呢?学习监听器主要学习监 阅读全文
摘要:
前面已经写了关于三篇循环依赖的文章, 这是一个总结篇 第一篇: 3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 第二篇: 3.2spring源码系列 循环依赖源码分析 第三篇: 3.3 Spring5源码 循环依赖过程中spring读取不完整bean的最终 现在总结 阅读全文
摘要:
根据之前解析的循环依赖的源码, 分析了一级缓存,二级缓存,三级缓存的作用以及如何解决循环依赖的. 然而在多线程的情况下, Spring在创建bean的过程中, 可能会读取到不完整的bean. 下面, 我们就来研究两点: 1. 为什么会读取到不完整的bean. 2. 如何解决读取到不完整bean的问题 阅读全文
摘要:
阅读全文
摘要:
首先,我们在3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 中手写了循环依赖的实现. 这个实现就是模拟的spring的循环依赖. 目的是为了更容易理解spring源码. 下面我们就进入正题, 看看spring的循环依赖源码. 一、getBean整体流程 目标很明确了 阅读全文
摘要:
本次博客的目标 1. 手写spring循环依赖的整个过程 2. spring怎么解决循环依赖 3. 为什么要二级缓存和三级缓存 4. spring有没有解决构造函数的循环依赖 5. spring有没有解决多例下的循环依赖. 一. 什么是循环依赖? 如下图所示: A类依赖了B类, 同时B类有依赖了A类 阅读全文
摘要:
本文涉及主题 1. BeanFactoryPostProcessor调用过程源码剖析 2. 配置类的解析过程源码 3. 配置类@Configuration加与不加的区别 4. 重复beanName的覆盖规则 5. @ComponentScan的解析原理 一. 研究目标: 解析spring如何加载配置 阅读全文
摘要:
之前我们知道了spring ioc的加载过程, 具体如下图. 下面我们就来对照下图, 看看ioc加载的源代码. 下面在用装修类比, 看看个个组件都是怎么工作的. 接下来是源码分析的整体结构图. 对照上面的思路梳理出来的 一、源码分析的入口 通常,我们的入口都是从main方法进入. 这里我们也来定义一 阅读全文
摘要:
一. 准备工作 1. . 编译环境 maven jdk8 idea 2. 编译版本: SpringV5.2.7RELEASE+GradleWapper+jdk1.8.0_131编译 二. 源码下载 git地址: 进入https://github.com/spring-projects/spring- 阅读全文