Переключатель конфигурации Dropwizard на основе переменной config - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю над проектом dropwizard, в котором я хочу установить другого поставщика источника конфигурации в зависимости от того, включено или нет значение конфигурации.

Поскольку объект конфигурации недоступен в initializeЯ создал глобальную переменную начальной загрузки.Хотя я все еще не могу обновить значения конфигурации.

Любая помощь или руководство о том, как это можно решить?

private Bootstrap<MyConfiguration> bootstrap;

@Override
public void initialize(final Bootstrap<MyConfiguration> bootstrap) {
    super.initialize(bootstrap);
    this.bootstrap = bootstrap;
}


@Override
public void run(final MyConfiguration configuration,
    final Environment environment) {

    this.bootstrap.setConfigurationFactoryFactory(
        new ImportConfigurationFactoryFactory<>());

    if(configuration.isEnabled()) {
        this.bootstrap.setConfigurationSourceProvider(
            new SubstitutingSourceProvider(
                this.bootstrap.getConfigurationSourceProvider(),
                new StrSubstitutor(new ConfigSwitcher())));
    } else {
       this.bootstrap.setConfigurationSourceProvider(
           new SubstitutingSourceProvider(
                this.bootstrap.getConfigurationSourceProvider(),
               new EnvironmentVariableSubstitutor(false)));
    }
}

...