我在 Spring 注释的帮助下连接一个类:
public class MyClass {
@Autowired
private B b ;
@Value("${foo}")
private String c ;
@Value("${bar}")
private Integer i ;
public MyClass (B b, String c, Integer i) {
this.b = b ;
this.c = c ;
this.i = i ;
}
}
我想从字段中删除注释,并将它们移动到构造函数:
public class MyClass {
private B b ;
private String c ;
private Integer i ;
@Autowired
public MyClass (B b, @Value("${foo}") String c, @Value("${bar}") Integer i) {
this.b = b ;
this.c = c ;
this.i = i ;
}
}
上述方法是一个好方法吗?它使课堂变得不那么美丽。有没有其他方法可以使用注释来做到这一点?
另外,这是否意味着 b 是自动连线的,而 c 和 i 是通过 @Value 连线的?也就是说,这里使用 @Value 注释会覆盖 c 和 i 的 @Autowired 注释吗?
PS:我将注释放在构造函数上,因为我不想编写设置器,只测试类。所以我必须编写一个带参数的构造函数,并给我一个设置了所有字段的对象。Spring 的问题是,如果我将参数放在字段上,并编写一个接受参数的构造函数,那么我也必须编写一个无参数构造函数,我不想这样做,因为这意味着在这个类的测试,我可以调用无参数构造函数来创建一个对象,然后调用setter来设置字段。