HK2中bindAsContract和bind之间的区别

时间:2019-05-22 17:40:06

标签: dependencies bind inject hk2

我正在努力在J2EE jersey项目中实现构造函数的依赖项注入。我正在使用HK2。我创建一个课程

class MyServiceImpl implements MyService{
  @Inject
  public MyServiceImpl(String test){
   // do something
  }
}

现在,我的问题是,当我通过扩展AbstractBinder在依赖项绑定器类中注册这种依赖项注入时,将依赖项作为简单的“ bind”绑定与“ bindAsContract”之间的区别是什么?

1 个答案:

答案 0 :(得分:1)

使用时

bind(ServiceImpl.class).to(IService.class)

ServiceImpl是实现类,而IService是您作为注入类型广告的合同。所以你会用

@Inject
private IService service;

使用

bindAsContract(ServiceImpl.class)

您是说ServiceImpl既是实现类,又是要作为广告宣传的合同。因此,您需要这样注入它。

@Inject
private ServiceImpl service;