我有这个类:Guice初学者 - 如何绑定具体类?
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;
}
}
凡Door
,Window
和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);
}
}
但我不知道这是否是结合具体的类以正确的方式,或者有更简单的方法。我觉得有一个更简单的方法来解决这个问题。
编辑
只是尝试这样做了,它似乎并没有工作:
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