オブジェクトを作成するためにインジェクターを作成するとき、その間接的な依存関係のためにモジュールを含める必要がありますか?
たとえば、次のコードでは、main() でインジェクターをどのように作成すればよいでしょうか?
public class Foo {
private Bar bar;
@Inject
public Foo(Bar bar) {
this.bar = bar;
}
public static void main(String[] argv) {
Injector injector = Guice.getInjector(new BarModule());
// or Injector injector = Guice.getInjector(new BarModule(), new BarDepModule());
Foo foo = injector.getInstance(Foo.class);
}
}
//=====================
public interface Bar {}
public class BarImp {
private BarDep barDep; // Dependency of Bar
@Inject
public Bar(BarDep barDep) {
this.barDep = barDep;
}
}
//=====================
もちろん、BarDep のバインドが必要です。問題は、BarDepModule を明示的にロードする必要があるか、それとも BarModule が責任を負うべきかということです。