我想通过编程来设置micronaut应用程序的名称,比如
@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
}
}
}我怎么能这么做?我试过用
@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);
}
}
}那不起作用
发布于 2022-09-05 04:09:37
由于应用程序是在application.yml中定义的,因此不需要添加额外的代码。但是您可以引入一个环境变量,如本例中所示:
micronaut:
application:
name: "${MY_APP_NAME:default-name}"在上面的示例中,您可以使用环境变量MY_APP_NAME来设置应用程序名称。如果未设置env变量,则应用程序将使用默认名称default-name。
https://stackoverflow.com/questions/73603522
复制相似问题