【问题标题】:Autowiring both the constructor and the field自动装配构造函数和字段
【发布时间】:2018-05-29 17:04:16
【问题描述】:

在做spring容器的自动配置的时候,同时自动装配字段和构造函数是不是错了。例如:

@Component
public class Test1 {

    @Autowired
    private Test2 B;

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

你能解释一下到底发生了什么吗?

【问题讨论】:

    标签: java spring dependency-injection autowired


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 2016-05-02
      • 2016-09-04
      • 1970-01-01
      • 2019-09-25
      • 2017-03-09
      • 2017-10-19
      相关资源
      最近更新 更多