Могу ли я указать значения по умолчанию для config.yml в моем приложении Java? - PullRequest
0 голосов
/ 18 декабря 2018

В настоящее время я работаю с Java-приложением с помощью dropwizard.

Он работает нормально, и я запускаю его, отправляя файл или параметры в формате yml.

Так, например, одним из них являетсявот что:

reporting:
  enabled: false

Итак, я хочу сделать этот файл yml моим по умолчанию и при необходимости (для будущих функций) отправить значение этого var

ТакЯ хотел бы сделать что-то вроде этого

reporting:
  enabled: ${REPORTING_FLAG:false}

Затем я могу отправить REPORTING_FLAG в качестве параметра среды (Docker) и должен работать нормально ....

Проблема в том, что я вижу эту модельне распознается моим приложением.

Можно ли как-нибудь это сделать?Есть ли дополнительная конфигурация, чтобы принять во внимание?Я делал это раньше с помощью приложения Spring, но, похоже, все по-другому.

Сейчас я получаю сообщение об ошибке, что ожидаемое логическое значение недопустимо (принимая всю строку в виде строки)

Идеи

1 Ответ

0 голосов
/ 18 декабря 2018

Итак, после прочтения дополнительной документации dropwizard я обнаружил следующее: https://www.dropwizard.io/0.8.2/docs/manual/core.html

Переменные среды

Модуль конфигурации dropwizard также предоставляет возможности для замены параметров конфигурации значением переменных средыиспользование SubstitutingSourceProvider и EnvironmentVariableSubstitutor.

public class MyApplication extends Application<MyConfiguration> {
    // [...]
    @Override
    public void initialize(Bootstrap<MyConfiguration> bootstrap) {
        // Enable variable substitution with environment variables
        bootstrap.setConfigurationSourceProvider(
                new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(),
                                                   new EnvironmentVariableSubstitutor()
                )
        );

    }

    // [...]
}

Параметры конфигурации, которые должны быть заменены, должны быть явно записаны в файле конфигурации и следовать правилам замены StrSubstitutor из библиотеки Apache Commons Lang.

mySetting: ${DW_MY_SETTING}
defaultSetting: ${DW_DEFAULT_SETTING:-default value}
...