Young87

当前位置:首页 >个人收藏

阿里面试官居然不懂Spring是如何解决循环依赖的?

构造器的循环依赖是无法解决的!

当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。需要的对象被代理时,就必须使用三级缓存。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 面试阿里拿到30K,因为我精通NIO的Selector事件选择器

下一篇: 程序员,请你不要在坑程序员了

精华推荐