que tienen esta clase:Guice Beginner - ¿Cómo enlazar clases concretas?
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;
}
}
Dónde Door
, Window
Roof
y son clases concretas. Ahora si quiero implementar un módulo para este escenario, lo haría así:
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);
}
}
pero me pregunto si este es el camino correcto para unir clases concretas, o si hay maneras más fáciles. Siento que hay una manera más fácil de esto.
EDITAR
acaba de intentar esto, y no parece funcionar:
1) Binding points to itself.
at de.tarent.guice.ex._1.HouseModule.configure(HouseModule.java:10)
EDIT 2
Parece que hay unión se necesita en absoluto:
Injector injector = Guice.createInjector();
House house = injector.getInstance(House.class);
También parece funcionar.
¿A dónde va el módulo vacío? ¿Cómo sabe Guice relacionarlos? – djechlin
@djechlin Esto dependerá de cómo esté configurada su aplicación. Por ejemplo, una aplicación basada en [Play] (https://www.lightbend.com/play-framework) esperará que dicho archivo de módulo esté en el paquete raíz, o configurable mediante 'play.modules.enabled' en la aplicación .conf – Siddhartha