虽然环境参数可以通过Springboot内置的Environment获取,但偶尔希望在初始化之前就知道将要运行的环境。因为配置active的方式很多,有跟在jar后面、系统的环境变量、配置文件等多渠道。其中只会有一种配置生效,因此还需要了解这些配置之间的加载优先级关系。
以下整理的常用的获取,从优先级最高逐级递减。实际还有多种方式,但目前未遇到,暂不整理。
public static String getActive(String[] args) {
String active = "";
Pattern compile = Pattern.compile("--spring\\.profiles\\.active=(.*)");
for (String arg : args) {
Matcher matcher = compile.matcher(arg);
if (matcher.find()) {
active = matcher.group(1);
}
}
if (StringUtil.isNotEmpty(active)) {
return active;
}
active = System.getProperty("spring.profiles.active");
if (StringUtil.isNotEmpty(active)) {
return active;
}
active = System.getenv("SPRING_PROFILES_ACTIVE");
if (StringUtil.isNotEmpty(active)) {
return active;
}
active = PropertiesUtil.getProp("application.properties", "spring.profiles.active", "");
return active;
}
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。