Spring 循环依赖
2021-12-27 14:16:10 0 举报
循环依赖解决方案
作者其他创作
大纲/内容
getSingleton(a)=null?
getObjectForBeanInstance()
initializeBean(a)
此时a的实例已存储在三级缓存,会把三级缓存中的a升级到二级缓存
getBean(b)
populateBean(b)
N
Y
createBean(b)
此次返回的bean和放入一级缓存后返回的bean有什么区别?
createBean(a)
initializeBean(b)
createBeanInstance()创建实例,并放三级缓存此时实例未初始化,属性为空,如果是SmartInstantiationAwareBeanPostProcessor需要生成对应的代理类
addSingleton(a)放一级缓存
getSingleton(b)=null?
getBean(a)
return bean
addSingleton(b)放一级缓存
populateBean(a)
addSingletonFactor() 放三级缓存
addSingletonFactor(a) 放三级缓存
收藏
0 条评论
下一页