Dependencies BindaContract和bind在HK2中的差异

Dependencies BindaContract和bind在HK2中的差异,dependencies,bind,inject,hk2,Dependencies,Bind,Inject,Hk2,我正在一个J2EE项目中实现构造函数的依赖项注入。我用的是HK2。我创建了一个类 class MyServiceImpl implements MyService{ @Inject public MyServiceImpl(String test){ // do something } } 现在,我的问题是,当我通过扩展AbstractBinder在dependencybinder类中注册此依赖项注入时,将依赖项绑定为简单的“绑定”与“BindaContract”有什么区别

我正在一个J2EE项目中实现构造函数的依赖项注入。我用的是HK2。我创建了一个类

class MyServiceImpl implements MyService{
  @Inject
  public MyServiceImpl(String test){
   // do something
  }
}
现在,我的问题是,当我通过扩展AbstractBinder在dependencybinder类中注册此依赖项注入时,将依赖项绑定为简单的“绑定”与“BindaContract”有什么区别

当您使用

bind(serviceinpl.class).to(IService.class)
serviceinpl
是实现类,
IService
是作为注入类型发布的契约。所以你会用

@Inject
私人色情服务;

bindAsContract(ServiceImpl.class)
您的意思是,
serviceinpl
既是实现类,也是作为广告的契约。所以你需要像这样注入它

@Inject
私人服务impl服务;

如果我有两个类实现相同的IService接口:(1)FileServiceImpl,(2)Databaseserviceimpl,那么我们如何根据需要通过接口注入适当的类?我们必须使用任何限定符或类似的东西吗?是的,您可以使用
qualifiedBy(annotationInstance)
在这种情况下,我应该如何处理构造函数参数?您还需要绑定它们。在您的帖子中,由于它是一个字符串,您需要对其进行限定。