私はこのクラスを持っている:Door
、Window
とRoof
は具象クラスであるGuice Beginner - 具体的なクラスをバインドする方法は?
public class House {
private final Door door;
private final Window window;
private final Roof roof;
@Inject
public House(Door door, Window window, Roof roof) {
this.door = door;
this.window = window;
this.roof = roof;
}
}
。今、私はこのシナリオのためのモジュールを実装する場合、私はこのようにそれを行うだろう:
public class HouseModule extends AbstractModule {
@Override
protected void configure() {
bind(Door.class).to(Door.class);
bind(Window.class).to(Window.class);
bind(Roof.class).to(Roof.class);
}
}
しかし、これは具体的なクラスをバインドするための正しい方法であるのだろうか、あるいは簡単な方法があるかどうか。私はこれに簡単な方法があると感じています。
EDIT
はこれを試してみて、動作していないよう:
1) Binding points to itself.
at de.tarent.guice.ex._1.HouseModule.configure(HouseModule.java:10)
EDIT 2
何の結合が全く必要ありませんように思え:
Injector injector = Guice.createInjector();
House house = injector.getInstance(House.class);
また、動作するようです。
空モジュールはどこに行きますか? Guiceはそれらを関連付ける方法をどのように知っていますか? – djechlin
@djechlinこれは、アプリケーションの設定方法によって異なります。例えば、[Play](https://www.lightbend.com/play-framework)ベースのアプリケーションは、そのようなモジュールファイルがルートパッケージに含まれると期待しています。あるいは、アプリケーションの 'play.modules.enabled'を介して設定可能です.conf – Siddhartha