Мне было интересно, как обычно используется инжектор. Я понимаю, что он используется в основном во время запуска, но как бы вы использовали его во время выполнения для создания объекта определенной реализации?
Например, у меня есть интерфейс User с реализацией UserA, UserB и UserC. Моя идея использовать Guice во время выполнения состоит в том, чтобы обернуть его в класс Singleton, чтобы я мог получать его, а не создавать новый инжектор каждый раз, когда я хочу создать экземпляр объекта User.
//Create in singleton wrapper class
Injector injector = Guice.createInjector(new SecurityModule());
//Retrieve and use at run-time (Manager is the singleton wrapper class)
Injector injector = Manager.getInstance().getInjector();
User user = injector.getInstance(User.class);
Это как обычно это делается? По сути, я хочу убедиться, что я сконцентрировал всю конфигурацию, чтобы было меньше ошибок (например, при использовании неправильного модуля). Это также проще в управлении, поэтому, если я решил использовать другой модуль конфигурации, я могу просто изменить его в классе, а не в каждом классе Java, который его использует.
Спасибо,
Jack