你有什么建议?
我发现最适合我的解决方案 - 将注入器和模块保留在枚举类中。优点:
- 注入器和模块创建一次,
- 在运行应用程序时(不仅在引导时),可以从不同的类中使用注入器,
- 注射器放在一个地方,很容易找到。
例子:
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;
}
}