Estoy creando una biblioteca que se incluirá como un contenedor, por lo que no contendrá un método principal. Me pregunto cuál es la mejor práctica para poner a Guice en este caso. Tengo un singleton de nivel superior.Uso de Guice sin un método principal
public class TestManager
{
private TestManager()
{
}
public static TestManager getInstance()
{
// construct and return singleton
}
public void createSomeObjects()
{
}
}
¿Dónde debo ir a bootstrap Guice? Estaba pensando que en el constructor podría llamar a Guice.createInjector (nuevo Módulo()); pero no inyectaría ninguno de los objetos creados en createSomeObjects().
¿Hay una manera común de hacer esto cuando no tienes un método principal()?
Saludos.
Ofrecer a sus clientes un módulo Guice podría funcionar muy bien. –
+1 para autoconfiguración súper inteligente. Solo piensa en lo malo que fue con Apache Commons Logging. –
@Jesse, nunca he visto bibliotecas que usen Guice internamente realmente lo expongan a los usuarios finales. Por ejemplo, Maven y JIRA usan IoC detrás de escena, pero lo insertan en sus clases sin que usted sepa qué implementación utilizan. Exponer Guice suena más limpio (si el usuario se siente cómodo con Guice), pero me temo que podría asustar a los usuarios (¿por qué nadie más lo hace?). – Gili