注入任何服务时,我有两种选择:
字段注入:
@Inject
private MyService myService;
或 构造函数注入:
private MyService myService;
@Inject
public ClassWhereIWantToInject(MyService mySerivce){
this.myService = myService;
}
为什么 Constructor injection 比 Field injection 好?
原文由 Riadh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现现场注入只有两个缺点。
当对象被测试时很难注入模拟。 (可以用 Mockito 的
@InjectMocks
解决)循环依赖。 If bean
A
depends on beanB
and beanB
needs beanA
.如果你有构造函数注入,很容易找到它。