自动装配构造函数和字段

时间:2018-05-29 17:04:16

标签: java spring dependency-injection autowired

在执行弹簧容器的自动配置时,自动装载字段和构造函数是否错误。例如:

@Component
public class Test1 {

    @Autowired
    private Test2 B;

    @Autowired
      Test(Test2 C) {
      this.B=C;
    }
}

你能解释一下究竟发生了什么吗?

1 个答案:

答案 0 :(得分:1)

这是错的。您可能有两个Test2个bean,一个名为" B"一个名为" C" (名称应为小写BTW)。首先调用该构造函数,将字段设置为C;之后将注入该字段,用B覆盖该字段。如果只有一个Test2 bean,那么它将起作用,但请记住,构造函数注入的目的是避免字段注入并改为使用final字段。