【发布时间】:2010-02-01 10:50:50
【问题描述】:
你有什么建议?
我发现最适合我的解决方案 - 将注入器和模块保留在枚举类中。 优点:
- 注入器和模块创建一次,
- 可以在运行应用程序时从不同的类中使用注入器(不仅在引导时),
- 注射器存放在一个地方,很容易找到。
例子:
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;
}
}
【问题讨论】:
-
不要这样做。这个策略有很多问题。在您的程序的每次执行中,您的所有注入器都将被创建,无论它们是否需要。
标签: dependency-injection guice