Tworzę bibliotekę, która będzie dołączona jako słoik, więc nie będzie zawierała głównej metody. Zastanawiam się, jaka jest najlepsza praktyka do ładowania Guice w tym przypadku. Mam jeden singleton na najwyższym poziomie.Używanie Guice bez głównej metody
public class TestManager
{
private TestManager()
{
}
public static TestManager getInstance()
{
// construct and return singleton
}
public void createSomeObjects()
{
}
}
Gdzie powinienem założyć Guice? Myślałem, że w konstruktorze mogę nazwać Guice.createInjector (new Module()); ale nie wstrzyknąłby żadnego z obiektów utworzonych w createSomeObjects().
Czy istnieje typowy sposób, aby to zrobić, gdy nie masz głównej metody()?
Pozdrawiam.
Dawanie klientom modułu Guice może dobrze działać. –
+1 dla super-inteligentnej samokonfiguracji. Pomyśl tylko, jak źle poszło z Logowaniem Apache Commons. –
@Jesse, nigdy nie widziałem bibliotek, które używają Guice wewnętrznie wystawiają go użytkownikom końcowym. Na przykład Maven i JIRA używają IoC za kulisami, ale wstrzykują do twoich klas, nie wiedząc, której implementacji używają. Odsłaniając Guice brzmi czystsze (jeśli użytkownik czuje się komfortowo z Guice), ale obawiam się, że może to odstraszyć użytkowników (dlaczego nikt inny tego nie robi?). – Gili