Hay algo que no entiendo sobre el guice: de acuerdo con lo que he leído hasta ahora, se supone que debo usar el inyector solo en mi clase de arranque (en una aplicación independiente esto normalmente sería en el principal) método), como en el siguiente ejemplo (tomado de la documentación guice):¿Cómo evitar tener injector.createInstance() por todo el lugar cuando se usa guice?
public static void main(String[] args) {
/*
* Guice.createInjector() takes your Modules, and returns a new Injector
* instance. Most applications will call this method exactly once, in their
* main() method.
*/
Injector injector = Guice.createInjector(new BillingModule());
/*
* Now that we've got the injector, we can build objects.
*/
RealBillingService billingService = injector.getInstance(RealBillingService.class);
...
}
Pero lo que si no todos los objetos que alguna vez necesita puede ser creado durante el arranque? Tal vez quiero responder a alguna interacción del usuario cuando la aplicación se está ejecutando? ¿No tengo que mantener mi inyector en algún lugar (por ejemplo, como una variable estática) y luego llamar a injector.getInstance (SomeInterface.class) cuando necesito crear un nuevo objeto?
Por supuesto, difundir llamadas a Injector.getInstance() por todas partes parece no ser deseable.
¿Qué me estoy equivocando aquí?
Sí, estoy completamente de acuerdo con eso. – Gamlor