首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行时设置micronaut环境变量

在运行时设置micronaut环境变量
EN

Stack Overflow用户
提问于 2022-09-04 23:53:35
回答 1查看 52关注 0票数 0

我想通过编程来设置micronaut应用程序的名称,比如

代码语言:javascript
复制
@Singleton
public class AppNameInitializer {
    @Inject
    public void initAppName(Environment env) {
        if (CollectionUtils.isNotEmpty(env.getActiveNames()) ){
            // i want to set property 'micronaut.application.name' to app-with-profiles
        } else {
            // i want to set property 'micronaut.application.name' to app-without-profiles
        }
    }
}

我怎么能这么做?我试过用

代码语言:javascript
复制
@Singleton
public class AppNameInitializer {
    @Inject
    public void initAppName(Environment env) {
        String propertyLowercase = "micronaut.application.name";
        // for some reason
        String propertyUppercase = "MICRONAUT_APPLICATION_NAME";
        String appNameWithProfiles = "app-with-profiles";
        String appNameWithoutProfiles = "app-without-profiles";
        if (CollectionUtils.isNotEmpty(env.getActiveNames()) ){
            System.setProperty(propertyLowercase, appNameWithProfiles);
            System.setProperty(propertyUppercase, appNameWithProfiles);
        } else {
            System.setProperty(propertyLowercase, appNameWithoutProfiles);
            System.setProperty(propertyUppercase, appNameWithoutProfiles);
        }
    }
}

那不起作用

EN

回答 1

Stack Overflow用户

发布于 2022-09-05 04:09:37

由于应用程序是在application.yml中定义的,因此不需要添加额外的代码。但是您可以引入一个环境变量,如本例中所示:

代码语言:javascript
复制
micronaut:
  application:
    name: "${MY_APP_NAME:default-name}"

在上面的示例中,您可以使用环境变量MY_APP_NAME来设置应用程序名称。如果未设置env变量,则应用程序将使用默认名称default-name

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73603522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档