Как мне назначить источник свойств для определенной среды в micronaut?

Я добавляю значения свойств через свой класс приложения вот так

public class Application {

    @Loggable
    public static void main(String[] args) {

        SecretManager secretManager = new SecretManager();

        Micronaut.build(null)
                .mainClass(Application.class)
                .propertySources(PropertySource.of(
                        "name",
                        mapOf(
                                "datasources.default.username", secretManager.getValue(
                                        "DATASOURCES_DEFAULT_USERNAME")
                                ))).start();
    }
}

Я хотел бы иметь возможность изменить значение datasources.default.username в соответствии со средой, выполнив что-то вроде этого. Следующий код не работает, но есть ли способ сделать что-то подобное?

public class Application {

    @Loggable
    public static void main(String[] args) {

        SecretManager secretManager = new SecretManager();

        if(environment == "Dev") {
            Micronaut.build(null)
                    .mainClass(Application.class)
                    .propertySources(PropertySource.of(
                            "name",
                            mapOf(
                                    "datasources.default.username", secretManager.getValue(
                                            "DATASOURCES_DEFAULT_USERNAME")
                            ))).start();
        } else {
            Micronaut.build(null)
                    .mainClass(Application.class)
                    .propertySources(PropertySource.of(
                            "name",
                            mapOf(
                                    "datasources.default.username", secretManager.getValue(
                                            "DATASOURCES_CUSTOM_USERNAME")
                            ))).start();
        }
    }
}


Есть ли способ сделать это?


person Rajshree Rai    schedule 06.02.2020    source источник
comment
Показанный вами код не работает? Если нет, то в чем ошибка? Если это сработает, что вы пытаетесь улучшить?   -  person James Kleeh    schedule 07.02.2020
comment
Это не работает. Я просто предоставил код, чтобы показать, что я хочу заставить его работать, написав что-то подобное. извините, если мне не ясно.   -  person Rajshree Rai    schedule 08.02.2020


Ответы (1)


Вы можете создать application-dev.yml, который назначает свойство из переменной env

datasources.default.username: ${SOME_ENV} например

person James Kleeh    schedule 27.02.2020