我正在努力在J2EE jersey项目中实现构造函数的依赖项注入。我正在使用HK2。我创建一个课程
class MyServiceImpl implements MyService{
@Inject
public MyServiceImpl(String test){
// do something
}
}
现在,我的问题是,当我通过扩展AbstractBinder在依赖项绑定器类中注册这种依赖项注入时,将依赖项作为简单的“ bind”绑定与“ bindAsContract”之间的区别是什么?
答案 0 :(得分:1)
使用时
bind(ServiceImpl.class).to(IService.class)
ServiceImpl
是实现类,而IService
是您作为注入类型广告的合同。所以你会用
@Inject
private IService service;
使用
bindAsContract(ServiceImpl.class)
您是说ServiceImpl
既是实现类,又是要作为广告宣传的合同。因此,您需要这样注入它。
@Inject
private ServiceImpl service;