Spring Bean相互依赖问题

如果是通过get,set 注入就不会有问题 

如果是通过构造函数注入,SPRING就会报循环引用注入出错 

循环依赖——在采用构造器注入的方式配置bean时,很有可能会产生循环依赖的情况。比如说,一个类A,需要通过构造器注入类B,而类B又需要通过构造器注入类A。如果为类A和B配置的bean被互相注入的话,那么Spring IoC容器将检测出循环引用,并抛出 BeanCurrentlyInCreationException异常。对于此问题,一个可能的解决方法就是修改源代码,将某些构造器注入改为setter注入。另一个解决方法就是完全放弃构造器注入,只使用setter注入。换句话说,除了极少数例外,大部分的循环依赖都是可以避免的,不过采用setter注入产生循环依赖的可能性也是存在的。与通常我们见到的非循环依赖的情况有所不同,在两个bean之间的循环依赖将导致一个bean在被完全初始化的时候被注入到另一个bean中(如同我们常说的先有蛋还是先有鸡的情况)。)

Spring只能解决单例模式下的Setter循环依赖。Spring是不能解决prototype作用域的bean之间的循环依赖的。

https://blog.csdn.net/lyc_liyanchao/article/details/83099675

原文地址:https://www.cnblogs.com/april-chen/p/10674958.html