Spring循环依赖的关键代码和流程示意图。
2022-06-22 21:20:19 4 举报
A对象包含B对象。B对象包含A对象。Spring是如何解决的?
作者其他创作
大纲/内容
getBean
k:bv:b完全状态
四
B@191ae067
二
k:av:lambda
doCreateBean
ObjectFactory
getObject
populateBean填充属性
A@191ae03f
resolveValueIfNecessary
一级缓存singletonObjects
* spring循环依赖关键代码 * 提前检查单例缓存中是否有手动注册的单例对象,跟循环依赖有关联Object sharedInstance = getSingleton(beanName);
五
applyPropertyValues应用属性值
doGetBean
半成品
resolveReference解析参考
k:bv:lambda
createBeanInstance实例化
k:av:a半成品
k:av:a完全状态
三
bean = this.beanFactory.getBean(refName);获取A对象的属性B对象。从走回到getBean
一
二级缓存earlySingletonObjects
三级缓存singletonFactories
createBean
0 条评论
下一页