Sto creando una libreria che verrà inclusa come jar, quindi non conterrà un metodo main. Mi chiedo quale sia la procedura migliore per avviare Guice in questo caso. Ho un singleton di alto livello.Uso di Guice senza metodo principale
public class TestManager
{
private TestManager()
{
}
public static TestManager getInstance()
{
// construct and return singleton
}
public void createSomeObjects()
{
}
}
Dove devo eseguire il boot di Guice? Stavo pensando che nel costruttore potrei chiamare Guice.createInjector (new Module()); ma non inietterebbe nessuno degli oggetti creati in createSomeObjects().
C'è un modo comune per farlo quando non si dispone di un metodo main()?
Cheers.
Fornire ai client un modulo Guice potrebbe funzionare correttamente. –
+1 per l'autoconfigurazione super-intelligente. Pensa a quanto è andato male con Apache Commons Logging. –
@Jesse, non ho mai visto librerie che usano Guice internamente in realtà esporlo agli utenti finali. Ad esempio Maven e JIRA usano l'IoC dietro le quinte ma si iniettano nelle tue classi senza che tu sappia quale implementazione usano. Exposing Guice sembra più pulito (se l'utente è a suo agio con Guice) ma temo che possa spaventare gli utenti (perché altrimenti nessuno lo fa?). – Gili