我在我的项目中使用 Spring 3.0.x。
我目前使用 @Autowired
的做法示例如下:
@Autowired
private SomeType someMemberVariable;
使用 setter 方法是否更好和/或更受欢迎?我的意思是:
private SomeType someMemberVariable;
@Autowired
private void setSomeMemberVariable(SomeType newValue)
{
someMemberVariable = newValue;
}
我理解可变和不可变的 setter ,这超出了这个问题的范围。
最佳答案
我在使用 @Autowired
时没有使用 setter - 它添加了样板代码。
每当我需要在单元测试中设置依赖项时,我都会使用 ReflectionTestUtils.setField(..)
- 作为 setter,它在编译时不安全,但我没有太多麻烦了。
作为旁注,如果使用 spring 3.0,您可以开始使用 @Inject
而不是 @Autowired
关于java - 我应该为@Autowired 提供一个 setter 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4147519/