귀하의 조언은 무엇입니까?어디 guice 인젝터를 유지하려면?
저에게 가장 적합한 해결책으로 인젝터와 모듈을 열거 클래스로 유지하십시오. 장점 : 응용 프로그램을 실행하는 동안
- 인젝터 한번 생성 모듈
- 인젝터
- 분사 한 곳에서 보관하고 용이하게 찾아 낼 수있다 (단지 스트랩의) 다른 클래스에서 사용될 수있다.
예 :
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;
}
}
이렇게하지 마십시오. 이 전략에는 많은 문제점이 있습니다. 귀사의 프로그램을 실행할 때마다 필요한 모든 인젝터가 만들어집니다. –