Доступ к контейнеру guice в приложении Dropwiard - PullRequest
1 голос
/ 09 января 2020

Я хочу использовать инъекцию зависимостей только в определенной части моего кода. Я использую HubSpot / dropwizard-guice для интеграции drop-wizard и guice. Есть ли способ, которым я могу получить доступ к экземплярам объекта Guice программно, не изменяя весь проект. По сути, я бы заменил инициализированные объекты объектами-подсказками, чтобы мне не приходилось менять все сразу.

Вот файл моего приложения

public class HelloWorldApplication extends Application<HelloWorldConfiguration> {

  public static void main(String[] args) throws Exception {
    new HelloWorldApplication().run(args);
  }

  @Override
  public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) {

    GuiceBundle<HelloWorldConfiguration> guiceBundle = GuiceBundle.<HelloWorldConfiguration>newBuilder()
      .addModule(new HelloWorldModule())
      .enableAutoConfig(getClass().getPackage().getName())
      .setConfigClass(HelloWorldConfiguration.class)
      .build();

    bootstrap.addBundle(guiceBundle);
  }

  @Override
  public String getName() {
    return "hello-world";
  }

  @Override
  public void run(HelloWorldConfiguration helloWorldConfiguration, Environment environment) throws Exception {
  }
}

Есть ли способ получить к нему доступ? Инжектор guice без явной передачи его в качестве параметра метода по всему моему проекту?

Или есть ли способ напрямую получить экземпляры классов из guice.

...