java - 如何在 micronaut 中将属性源分配给特定环境?

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


有什么办法可以完成这个任务吗?

最佳答案

您可以创建一个 application-dev.yml 来从环境变量中分配属性

datasources.default.username: ${SOME_ENV} 例如

关于java - 如何在 micronaut 中将属性源分配给特定环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60086951/

相关文章:

swagger - Micronaut:生成到请求正文中的身份验证主体

Java线程: Pause/Resume Thread vs Terminiate/Start New Thread

java - 新建 >> 项目 >> Android 应用程序项目不起作用

java - spring-data-cassandra 无法转换枚举

java - 在处理中重新绘制当前像素周围的选定像素区域

使用普通 Hibernate JPA 的 Micronaut 1.0.RC1 在启动时失败

java - micronaut 中未选择配置属性

java - 如何从配置层次结构的根读取 Micronaut 数组属性?

java - 在android中格式化数字0.000

amazon-web-services - 从 Cognito 身份池 identityId 获取 Cognito 用户池用户名