Каков ваш совет?Куда хранить липкие форсунки?
Я нашел наиболее подходящим для меня решение - держите инжекторы и модули в классах перечисления. Преимущество:
- инжекторы и модули, созданные один раз,
- инжекторы может быть использованы из разных классов во время выполнения приложения (не только на начальной загрузке),
- инжекторов хранятся в одном месте и могут быть легко найдены.
Пример:
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;
}
}
Не делайте этого. У этой стратегии много проблем. В каждом исполнении вашей программы все ваши инжекторы будут созданы независимо от того, нужны они или нет. –