Pom*_*rio 14 setter spring constructor autowired
使用@Autowired(不是xml配置)时,是否有人可以比较set/constructor绑定的优缺点?
请参阅以下示例:
public class Example{
private Logger log;
// constructor wiring
@Autowired
public Example(Logger log){
this.log = log;
}
}
public class Example{
// setter wiring
@Autowired
private Logger log;
}
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 13
这完全是一个偏好问题.
Spring在构造函数注入时皱眉,或者至少习惯于,因为这样会出现循环依赖,并且它们很难管理(A在构造函数中需要B,B在构造函数中需要A).
一个实际的区别是,@Autowired在一个字段上你不需要一个setter方法,它一方面使类更小,更容易阅读,但另一方面使得模拟类更加丑陋.
我更喜欢野外注射.
在所有人投票进行现场注射后很长时间内扮演魔鬼倡导者,使用从投票同事那里收集的构造函数来说,这里有一些优势:
我仍然喜欢这样一个事实,即如果我需要另一个类中的带注释的字段,我可以做一个复制粘贴并完成它而不是将它添加到构造函数中,但它只是次要的考虑因素.
| 归档时间: |
|
| 查看次数: |
3826 次 |
| 最近记录: |