我想知道下面的解决方案之间的区别是什么,为什么使用解决方案2?有什么好处吗?
解决方案1:
public A {
@Autowire
private B b;
}
public B {
...
}解决方案2:
public A {
private B b;
@Autowire
public A(B b) {
this b=b;
}
}
public B {
...
}```发布于 2021-01-02 20:31:49
因此,如果你通过属性注入来初始化你的bean,你可能会因为不同的原因在运行时得到未初始化的bean。这可能是Runtime中的NPE。但是如果你使用构造器的注入,它将是一个引导异常。如果您尝试将空参数依赖项注入到构造函数中,那么潜在的问题会更快地找到。这是一个“快速失败”的想法。另外,如果你有一个循环依赖,你的应用程序会在引导过程中失败。你想早点知道。
https://stackoverflow.com/questions/65538975
复制相似问题