当Bean产生循环依赖时,比如BeanA的构造方法依赖BeanB作为成员需要注入,BeanB也依赖BeanA,你觉得会出现什么问题呢?又有哪些解决方式呢?
直观解决方法时通过set方法去处理,背后的原理其实是缓存。
主要解决方式:使用三级缓存
- singletonObjects: 一级缓存, Cache of singleton objects: bean name --> bean instance
- earlySingletonObjects: 二级缓存, Cache of early singleton objects: bean name --> bean instance 提前曝光的BEAN缓存
- singletonFactories: 三级缓存, Cache of singleton factories: bean name --> ObjectFactory
转载:https://blog.csdn.net/qq_33589510/article/details/116755064
查看评论