Spring 事务、异步和循环依赖有什么关系?
Spring 事务、异步和循环依赖有什么关系?
|
在循环依赖中有一种循环依赖,就是自注入:自己依赖自己。
Spring 动态代理时是如何解决循环依赖的?为什么要使用三级缓存?
Spring 动态代理时是如何解决循环依赖的?为什么要使用三级缓存?
|
循环依赖为什么要使用三级缓存?而不是使用二级缓存?AOP 动态代理对循环依赖的有没有什么影响?
Spring 是如何解决循环依赖的?
Spring 是如何解决循环依赖的?
|
什么是循环依赖,以及 Spring 是如何解决循环依赖的?
Spring 源码学习 16:单例 Bean 创建
Spring 源码学习 16:单例 Bean 创建
|
在 finishBeanFactoryInitialization 中介绍了创建 Bean 的流程大概流程,这里进入单例 Bean 的创建过程。
Spring 源码学习 15:finishBeanFactoryInitialization(重点)
Spring 源码学习 15:finishBeanFactoryInitialization(重点)
|
可以说前面的都是准备工作,而接下来开始的才是重点,在这一步会完成 BeanFactory 的初始化,同时实例化单例 Bean。
Spring 源码学习 14:initApplicationEventMulticaster 、onRefresh 和 registerListeners
Spring 源码学习 14:initApplicationEventMulticaster 、onRefresh 和 registerListeners
|
上一篇介绍了国际化的使用以及初始化消息源的源码,接下来接着往下阅读,将进入 initApplicationEventMulticaster 、onRefresh 和 registerListeners 的相关操作逻辑。
Spring 源码学习 13:initMessageSource
Spring 源码学习 13:initMessageSource
|
在阅读完 registerBeanPostProcessors 源码之后, 下一步就进入到 initMessageSource,这一步主要作用是初始化国际化文件。
Spring 源码学习 12:registerBeanPostProcessors
Spring 源码学习 12:registerBeanPostProcessors
|
这一步主要的作用是加载 BeanPostProcessor,从名字也可以看出,只是加载,并没有执行。
Spring 源码学习 11:invokeBeanFactoryPostProcessors
Spring 源码学习 11:invokeBeanFactoryPostProcessors
|
invokeBeanFactoryPostProcessors 会执行 BeanFactory 的后置处理器。
Spring 源码学习 10:prepareBeanFactory 和 postProcessBeanFactory
Spring 源码学习 10:prepareBeanFactory 和 postProcessBeanFactory
|
根据 refresh 流程,当 obtainFreshBeanFactory 执行结束后,下一步会执行 prepareBeanFactory ,顾名思义,这个方法主要是准备 BeanFactory,下面一起看一看这部分逻辑。