详解Spring-bean的循环依赖以及解决方式
本文主要是分析Spring bean的循环依赖,以及Spring的解决方式。通过这种解决方式,我们可以应用在我们实际开发项目中。循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。循环调用其实就是一个死循环,除非有终结条件。Spring中循环依赖场景有: 循环依赖的产生可能有很多种情况,例如:。当然,Spring对于循环依赖的解决不是无条件的,首先前提条件是针对scope单例并且没有显式指明不需要解决循环依赖的对象,而且要求该对象没有被代理过。分析getSingleton()的整个过程,Spring首先从一级缓存singletonObjects中获取。因为加入singletonFactories三级缓存的前提是执行了构造器,所以构造器的循环依赖没法解决。
用户评论