随笔分类 - Spring
摘要:相信小伙伴一定用过 @Transaction 注解,那 @Transaction 背后的秘密又知道多少呢?
Spring 是如何开启事务的?又是如何进行提交事务和关闭事务的呢?
阅读全文
摘要:在循环依赖中有一种循环依赖,就是自注入:自己依赖自己。
阅读全文
摘要:循环依赖为什么要使用三级缓存?而不是使用二级缓存?AOP 动态代理对循环依赖的有没有什么影响?
阅读全文
摘要:什么是循环依赖,以及 Spring 是如何解决循环依赖的?
阅读全文
摘要:在 finishBeanFactoryInitialization 中介绍了创建 Bean 的流程大概流程,这里进入单例 Bean 的创建过程。
阅读全文
摘要:可以说前面的都是准备工作,而接下来开始的才是重点,在这一步会完成 BeanFactory 的初始化,同时实例化单例 Bean。
阅读全文
摘要:上一篇介绍了国际化的使用以及初始化消息源的源码,接下来接着往下阅读,将进入 initApplicationEventMulticaster 、onRefresh 和 registerListeners 的相关操作逻辑。
阅读全文
摘要:在阅读完 registerBeanPostProcessors 源码之后, 下一步就进入到 initMessageSource,这一步主要作用是初始化国际化文件。
阅读全文
摘要:前面通过 invokeBeanFactoryPostProcessors 这一步了解到了什么是 BeanFactoryPostProcessor ,以及 BeanFactoryPostProcessor 的使用及作用,并通过 invokeBeanFactoryPostProcessors 这一步源码,对 BeanFactoryPostProcessor 的加载流程有了进一步了解。
阅读全文
摘要:invokeBeanFactoryPostProcessors 会执行 BeanFactory 的后置处理器。看到这里会有疑问:
1. 什么是 BeanFactoryPostProcessor ?
2. BeanfactoryPostProcessor 该如何使用?
阅读全文
摘要:根据 refresh 流程,当 `obtainFreshBeanFactory` 执行结束后,下一步会执行 `prepareBeanFactory` ,顾名思义,这个方法主要是`准备 BeanFactory`,下面一起看一看这部分逻辑。
阅读全文
摘要:前面的准备工作结束之后,就是进入核心代码 refresh。
阅读全文
摘要:看完无参构造的源码及流程之后,后面将会执行 `register` 方法。
阅读全文
摘要:AnnotationConfigApplicationContext 构造函数除了初始化一个 `reader` ,还有一个 `scanner`,下面来一起看看 `ClassPathBeanDefinitionScanner` 都有什么逻辑。
阅读全文
摘要:BeanDefinition 的概念也了解了,也知道一个 Bean 在 Spring 中定义的信息有哪些之后,继续言归正传。
阅读全文
摘要:BeanDefinition:顾名思义,就是 Bean 的定义,是用来描述一个 Bean 都有什么信息。前面说在初始化 `DefaultListableBeanFactory` 时,会初始化一个 `Map
阅读全文
摘要:初始化容器 与 DefaultListableBeanFactory
阅读全文
摘要:根据元数据配置方式不同,对应的几种创建容器的方式
阅读全文
摘要:在前一篇文章中介绍了如何构建源码阅读环境,既然构建好了源码环境,本地也可以正常运行,那就开始阅读源码吧!
阅读全文
摘要:本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!当前版本:5.3.2-SNAPSHOT。
阅读全文