我在两个模块中有两个dropwizard Java App。我们说 A 和 B ,而我们的 B 模块取决于 A 。
现在,我想在两种不同的情况下注入不同的客户端,即一种在 A 的dropwizard运行时,另一种在 B 的dropwizard运行时。
假设Myclass在 A 模块中:
public class MyClass
{
@Inject
private final CustomClient client;
}
我想通过HK2依赖注入来做到这一点。注意类Myclass不是资源类...
目前,我已经在模块 B 的应用程序中为CustomClient注册了另一个实现,如下所示:
environment.jersey().register(new AbstractBinder() {
@Override
protected void configure() {
...
bind(new MyCustomClient()).to(CustomClient.class);
...
}
});
但是,当我运行 B 的应用并从中调用A类的MyClass类时,模块 A 中MyClass类的CustomClient却为空。
但是我当时想我将在注入后获得MyCustomClient的实例。
如何使用HK2 DI实现我想要的?
注意:我想用HK2在普通的Java类中进行注入。