Я создаю библиотеку, которая будет включена как банка, поэтому она не будет содержать основной метод. Мне интересно, что лучше всего подходит для начальной загрузки Guice в этом случае. У меня один синглтон верхнего уровня.Использование Guice без основного метода
public class TestManager
{
private TestManager()
{
}
public static TestManager getInstance()
{
// construct and return singleton
}
public void createSomeObjects()
{
}
}
Куда я должен загружать Guice? Я думал, что в конструкторе я могу назвать Guice.createInjector (новый модуль()); но он не будет вводить ни один из объектов, созданных в createSomeObjects().
Есть ли общий способ сделать это, когда у вас нет основного метода()?
Cheers.
Предоставление клиентам модуля Guice может работать хорошо. –
+1 для супер-умной самоконфигурации. Просто подумайте о том, как плохо это произошло с регистрацией Apache Commons. –
@ Джесси, я никогда не видел библиотеки, которые используют Guice, на самом деле выставляют ее конечным пользователям. Например, Maven и JIRA используют IoC за кулисами, но они вводят в ваши классы, не зная, какую реализацию они используют. Появление Guice звучит чище (если пользователь удобен с Guice), но я боюсь, что это может напугать пользователей (почему еще никто этого не делает?). – Gili