spring循环依赖的内部解决
2020-12-23 18:30:17 0 举报
循环依赖解决的流程图
作者其他创作
大纲/内容
完成注入
结束
通过A对象创建一个工厂并放进三级缓存
属性注入B,调用getBean(b)
从缓存中获取到A对象
初始化
实例化一个对象
Spring创建bean的过程可以分为三个阶段:1、实例化,对应方法:AbstractAutowireCapableBeanFactory # createBeanInstance方法2、属性注入,对应方法:AbstractAutowireCapableBeanFactory # populateBean方法3、初始化,对应方法:AbstractAutowireCapableBeanFactory # initializeBean
获取A对象的对象工厂
创建B
三级缓存
对A对象进行初始化
从三级缓存中获取到A对应的工厂,通过工厂获取到A,再将A放到二级缓存中,同时移除三级缓存中的工厂
实例化B
创建A
getBean(a)
非AOP普通的循环依赖
清除二级缓存将初始化的Bean放入一级缓存
A对象
收藏
收藏
0 条评论
下一页