Как назначить источник свойства определенной среде в микроавтобусе? - PullRequest
0 голосов
/ 06 февраля 2020

Я добавляю значения свойств через мой класс Application следующим образом:

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();
        }
    }
}


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

1 Ответ

1 голос
/ 27 февраля 2020

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

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

...