我有一个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
初始化过程产生影响
答案 0 :(得分:1)
不应该。回到xml时代,当你想将一个参数传递给构造函数时,你提到了构造函数arg的ref bean。这只意味着您必须具有将指定的bean类型作为参数的构造函数。你在构造函数中添加的内容并不重要,只要你通过构造函数创建一个有效的对象(虽然这只是普通的java编程而与Spring无关)。
自动连接只是一种简单的方法来创建具有必要依赖关系的对象,而您的代码仍然是您的代码。
答案 1 :(得分:1)
没有
当Spring实例化你的类时,它将找到用AccountRecoveryViewController
注释的构造函数,收集与构造函数所使用的参数对应的bean,然后将这些bean作为参数调用它。
然后,它将扫描您班级中的所有字段和方法,并将bean注入任何使用@Autowired
注释的字段。它不会触及未注释的方法或字段。