Hk2依赖注入对于Dropwizard App Java

时间:2018-06-30 21:50:44

标签: java dependency-injection jersey dropwizard hk2

我在两个模块中有两个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类中进行注入。

0 个答案:

没有答案