在执行弹簧容器的自动配置时,自动装载字段和构造函数是否错误。例如:
@Component
public class Test1 {
@Autowired
private Test2 B;
@Autowired
Test(Test2 C) {
this.B=C;
}
}
你能解释一下究竟发生了什么吗?
答案 0 :(得分:1)
这是错的。您可能有两个Test2
个bean,一个名为" B"一个名为" C" (名称应为小写BTW)。首先调用该构造函数,将字段设置为C
;之后将注入该字段,用B
覆盖该字段。如果只有一个Test2
bean,那么它将起作用,但请记住,构造函数注入的目的是避免字段注入并改为使用final
字段。