Spring循环依赖源码解决流程
2021-04-12 20:21:44 0 举报
Spring循环依赖源码解决流程
作者其他创作
大纲/内容
将早期对象instA加入到三级缓存中
去实例化A
1:getBean(instA)
在设置属性的时候发现依赖instA
getEarlyBeanReference
这里是Spring提供的扩展
返回实例化好的instB
Bean的后续处理
早期对象 instA = instA@123456
1:getBean(instB)
在设置属性的时候,发现依赖instB
此时 instA = null
5:objectFactory.getObject();
返回实例化好的insA
放到二级缓存中,移除三级缓存
将完全初始化好的instaA放入一级缓存中
早期对象 instB = instA@123456
bean的后续处理
返回原始对象那个A
此时 instB= null
找到了早期对象instA
从三级缓存中获取早期对象singletonFactory.getObject
0 条评论
下一页