循环依赖带AOP
2020-06-26 17:16:24 7 举报
循环依赖
作者其他创作
大纲/内容
23.最后全部存到singletonObjects中
4.put
2.创建a(5A11)对象
false只会从singleObjects和earlySingletonObjects这个map中获取,所以返回null
10.populateBean(b)会注入b(5B12)对象所需要依赖的对象a
return bean
5.populateBean(a)会注入a对象所需要依赖的对象b
singleObjects
19.a(5A11)注入$$b($5B12)
从singleObjects这个map中获取单例bean(这个map集合存放的是已经走完整个spring生命周期的bean)
20.initializeBean这个方法会走后置处理器去创建$$a但是由于12步已经创建过了,所以缓存里面有这里判断创建过就直接往下走了
18.返回$$b($5B12)
14.返回$$a($5A11)对象
22.直接用获取到的$$a($5A11)返回,这个代理对象的targetSource为对象a(5A11)
13.创建$$a($5A11)存入
存储lamda创建的对象
6.getBean(B)
1.doCreateBean(a)
return null;
7.doCreateBean(b)
15.b(5B12)对象注入$$a($5A11)对象
16.initializeBean通过这个方法创建$$b对象(注意这个$$b($5B15)对象的targetSource是注入了$$a($5A17)对象的a对象)
8.创建b(5B12)对象
singletonFactories这个map集合中获取一个函数式接口对象。通过这个函数式接口获取对象。并且把获取到的这个bean存入到earlySingletonObjects中
18.$$b($5B12)对象创建完毕(TargetSource是注入了$$a($5A11)对象的b(5B12)对象)
N
allowEarlyReference == true
0 条评论
下一页