Spring循环依赖
2021-05-18 17:05:49 0 举报
Spring循环依赖
作者其他创作
大纲/内容
返回A早期引用
查找
populateBean()初始化A
缓存A早期引用
缓存A到二级缓存,删除三级缓存
查找缓存
缓存到一级缓存,删除二级缓存
getBean(A.class)获取A
否
Spring的三级缓存
getBean(B.class)依赖B
二级缓存(Map)
populateBean()初始化B
initializeBean()完成初始化B
一级缓存(Map)
CreateBeanInstance()实例化B
开始
缓存B单例工厂
缓存(Map)
结束
CreateBeanInstance()实例化A
三级缓存(Map)
一级缓存返回B对象
getBean(A.class)依赖A
缓存到一级缓存,删除三级缓存
若不存在则查找二级
initializeBean()完成初始化A
一级缓存不存在
若不存在则查找三级
缓存B早期引用
缓存A单例工厂
若不存在,且是创建中,则查找二级
使用一个缓存Map对象的情况
使用两个缓存Map对象的情况
查找一级缓存
一级缓存不存在且不是创建中
返回B对象
0 条评论
下一页