自动生成构造函数和字段
在执行弹簧容器的自动配置时,自动连接字段和构造函数是否错误。例如:
@Component
public class Test1 {
@Autowired
private Test2 B;
@Autowired
Test(Test2 C) {
this.B=C;
}
}
你能解释一下到底发生了什么吗?
解决方案
错误。您可能有两个Test2
Bean,一个名为"B",另一个名为"C"(名称应为小写BTW)。将首先调用该构造函数,将该字段设置为C
;然后注入该字段,并使用B
覆盖该字段。如果只有一个Test2
Bean,那么它将工作,但请记住,构造函数注入的目的是避免字段注入,而是允许使用final
字段。
相关文章