与构造函数 设置器注入的圆形依赖性不一致



我的应用程序中有以下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 main为什么这种循环依赖性不是很一致?

问题是您的豆A取决于bean b,而bean B取决于beanA。首先,我建议重新考虑您的设计。但是,有一些解决方法,例如使用@postConstruct或@lazy。这是一个很好的参考,其中解释了解决问题的情况和不同的方法:http://www.baeldung.com/circular-depparies-in-spring

最新更新