如何在Spring中以编程方式获得当前活动/默认环境配置文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我需要根据不同的当前环境配置文件编写不同的逻辑。如何从Spring获得当前的活动和默认配置文件?

提问于
用户回答回答于

你可以自动测量环境

@Autowired
Environment env;

环境提供String[] getActiveProfiles()String[] getDefaultProfiles(),和boolean acceptsProfiles(String... profiles)

用户回答回答于

这是一个更完整的例子。

Autowire环境

首先,你需要自动装载环境bean。

@Autowired
private Environment environment;

检查活动配置文件是否存在配置文件

然后,你可以使用getActiveProfiles()查找活动配置文件列表中是否存在该配置文件。下面是一个例子,它使用String[]from getActiveProfiles(),从该数组获取流,然后使用匹配器检查多个配置文件(不区分大小写),如果它们存在,则返回布尔值。

//Check if Active profiles contains "local" or "test"
if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
   env -> (env.equalsIgnoreCase("test") 
   || env.equalsIgnoreCase("local")) )) 
{
   doSomethingForLocalOrTest();
}
//Check if Active profiles contains "prod"
else if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
   env -> (env.equalsIgnoreCase("prod")) )) 
{
   doSomethingForProd();
}

扫码关注云+社区