我的应用程序中有以下bean
@Component
public class Main {
private A a;
@Inject
public Main(A a) {
this.a = a;
}
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}
@Component
public class A {
private B b;
@Inject
public void setB(B b) {
this.b = b;
}
public B getB() {
return b;
}
}
@Component
public class B {
private A a;
@Inject
public void setA(A a) {
this.a = a;
}
public A getA() {
return a;
}
}
组件扫描适用于放置这三个类的包。 上面的bean在某些环境中工作,并且在创建bean Main时在具有循环依赖性的其他环境中失败 为什么这种循环依赖不是很一致?
答案 0 :(得分:-1)
问题是你的bean A依赖于bean B,而bean B依赖于bean A.首先,我建议你重新考虑你的设计。但是,有一些解决方法,比如使用@Postconstruct或@Lazy。 这是一个很好的参考,它解释了发生了什么以及解决问题的不同方法:http://www.baeldung.com/circular-dependencies-in-spring