java循环注入的问题

  • Post author:
  • Post category:java


加AOP能解决spring IoC的循环引用么?

循环引用是你配置bean的时候,构建方式上出了错。比如,创建A对象的时候,你引用到了B,而创建B对象的时候,你又引用到了A。你仔细检查下你的构造器

循环依赖——在采用构造器注入的方式配置bean时,很有可能会产生循环依赖的情况。比如说,一个类A,需要通过构造器注入类B,而类B又需要通过构造器

注入类A。如果为类A和B配置的bean被互相注入的话,那么Spring IoC容器将检测出循环引用,并抛出

BeanCurrentlyInCreationException异常。对于此问题,一个可能的解决方法就是修改源代码,将某些构造器注入改为

setter注入。另一个解决方法就是完全放弃构造器注入,只使用setter注入。换句话说,除了极少数例外,大部分的循环依赖都是可以避免的,不过采

用setter注入产生循环依赖的可能性也是存在的。与通常我们见到的非循环依赖的情况有所不同,在两个bean之间的循环依赖将导致一个bean在被完

全初始化的时候被注入到另一个bean中(如同我们常说的先有蛋还是先有鸡的情况)。)