Spring构造函数自动构造和初始化其他字段



我有一个Spring类,其中我使用构造函数自动构建服务,并且在同一构造函数中我初始化了同一类的其他字段。

@Component
class Converter {
  private TestService testService;
  private Interger otherFields;
  @Autowired
  public Converter(TestService testService) {
     this.testService = testService;
     this.otherFields = new Integer(10);
  }
}

我的功能工作得很好,但这是一个好的做法吗?, @Autowired注释对otherFields初始化过程是否有影响

不应该。早在xml时代,当您希望将参数传递给构造函数时,就会提到构造函数arg的ref bean。这仅仅意味着必须有一个以指定bean类型作为参数的构造函数。在构造函数中添加什么并不重要,只要通过构造函数创建一个有效的对象即可(尽管这只是普通的java编程,与Spring无关)。

自动布线只是一个简单的方法来创建你的对象与必要的依赖关系,你的代码仍然是你的代码。

No.

当Spring实例化你的类时,它将找到带有@Autowired注释的构造函数,收集与构造函数所接受的参数对应的bean,然后用这些bean作为参数调用它。

然后,它将扫描类中的所有字段和方法,并将bean注入用@Autowired注释的任何字段。

相关内容

最新更新