В моем приложении есть несколько модулей, связывающих что-то с определенным именем или классом. Есть ли способ рассказать Guice, какие модули он должен использовать при разрешении зависимостей для инъекции.Guice указать модули для инъекций
Мой упрощенный график зависимостей выглядит примерно так, где синий указывает классы из модуля 1, а красный указывает классы из модуля 2. Теперь я хочу, чтобы создал два экземпляра из класса A, но с разными классами, связанными с некоторыми зависимостями.
public class Module1 extends AbstractModule {
@Override
protected void configure() {
bind(C.class).to(C_Impl1.class)
bind(D.class).to(D_Impl1.class)
}
}
public class Module2 extends AbstractModule {
@Override
protected void configure() {
bind(C.class).to(C_Impl2.class)
bind(D.class).to(D_Impl2.class)
}
}
public class Application {
@Inject @UseModules(Module1, ...) private final A someClassUsingImpl1;
@Inject @UseModules(Module2, ...) private final A someClassUsingImpl2;
public void doSomethingWithImpl1() {
someClassUsingImpl1.doSomething()
}
public void doSomethingWithImpl2() {
someClassUsingImpl2.doSomething()
}
}