У меня есть код ниже в основном классе
public ABCImpl() {
Injector injector = Guice.createInjector(new SomeModule());
this.config = injector.getInstance(SomeConfig.class);
В SomeModule установлены другие модули, например
public class SomeModule extends AbstractModule {
@Override
protected void configure() {
install(new SomeOtherModule());
install(new AndAnotherModule());
}
}
Модуль SomeOtherModule принадлежит к другому файлу и имеет реализацию провайдера.
@ProvidesIntoOptional(ProvidesIntoOptional.Type.DEFAULT)
public XYZ getXYZ() {
return new XYZ();
}
Теперь я хочу переопределить это значение по умолчанию внутри SomeModule или создать другой модуль для установки на основе значений в конфигурации
@ProvidesIntoOptional(ProvidesIntoOptional.Type.DEFAULT)
public XYZ getXYZDifferentWay() {
return new XYZ(someparam);
}
Как этого добиться.Моя единственная цель - если какое-то значение в config равно true, тогда я должен получить другой XYZ, иначе все останется как есть.Это может быть полезно в тех случаях, когда вам нужно соединение с ресурсом по умолчанию, но на локальном компьютере я могу использовать фиктивный ресурс.