Spring 循环依赖流程图
2020-05-28 14:56:06 0 举报
Spring循环依赖流程图
作者其他创作
大纲/内容
Bean C
Map=>singletonObjects
A->populateBean()
结束
两个Bean都有互相依赖对方
B->addSingleton()
Map=>singletonFactories
发现Bean A注入
获取Bean A
A->addSingleton()
Bean A
getSingleton()
Map=>earlySingletonObjects
earlySingletonObjects.remove()
获取/创建Bean
doCreateBean()
singletonFactories.remove()
Bean B
singletonObjects.put()
开始
发现Bean B注入
三级缓存:singletonFactories
二级缓存:earlySingletonObjects
addSingleton()
B->populateBean()
创建Bean B
Bean C、D
一级缓存:singletonObjects
1、从singletonObjects里获取,如果存在就返回,不存在就继续往下走2、从earlySingletonObjects里获取,如果存在就返回,不存在就继续往下走3、从singletonFactories里获取,如果获取到则将其挪到earlySingletonObjects里,并从singletonFactories里移除,不存在就继续往下走4、当以上缓存map中都没有这个Bean的时候就直接调用doCreateBean()方法创建,并放进singletonFactories里暴露出去
Bean D
创建Bean A
收藏
0 条评论
下一页