あなたのアドバイスは何ですか?
私は自分の解決策に最も適していると感じました-インジェクターとモジュールを列挙型クラスに保持します。利点:
- 一度作成されたインジェクターとモジュール、
- インジェクターは、アプリケーションの実行中に(ブートストラップ時だけでなく)さまざまなクラスから使用できます。
- インジェクターは一か所に保管されており、簡単に見つけることができます。
例:
import static ru.package.Modules.*;
public enum Injectors {
FOO_INJECTOR(BarModule.module()),
FOO2_INJECTOR(FOO_INJECTOR.injector(),
Bar2Module.module(), FooModule.module());
private final Injector m_injector;
Injectors (Module... modules) {
m_injector = Guice.createInjector(modules);
}
Injectors (Injector parentInjector, Module... modules) {
m_injector = parentInjector.createChildInjector(modules);
}
public Injector injector() {
return m_injector;
}
}