一个项目中出现多个环境的配置文件
在代码里我们可以通过下面的方法获取当前的环境。
首先,为了拓展性,我们需要定义一个枚举,用做环境的区分
public enum EnvEnum {
DEV,PROD,TEST
}
其次,定义一个Sping工具类,获取上下文中的环境,做一个匹配。
@Component
public class SpringUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) {
applicationContext = context;
}
/**
* 获取当前运行环境
*/
public static EnvEnum getEnv() {
Environment environment = applicationContext.getEnvironment();
String[] activeProfiles = environment.getActiveProfiles();
for (String activeProfile : activeProfiles) {
switch (activeProfile) {
case "prod":
return EnvEnum.PROD;
case "test":
return EnvEnum.TEST;
}
}
return EnvEnum.DEV;
}
}
因为是静态方法,用起来还是很方便的。