我为每个配置文件都有一个单独的spring yaml配置文件。
我需要从CommandLineRunner
后代类来读取配置文件并执行相应的脚本。
有没有办法从java获取环境配置文件名称?
我试过这个:
environment.getActiveProfiles();
但它只返回一个空字符串数组。
答案 0 :(得分:3)
environment.getProperty("spring.profiles.active")
获取有效的个人资料。答案 1 :(得分:0)
这种方法适用于我
private static final String SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE";
protected void setSpringProfile(ServletContext servletContext) {
if(null!= System.getenv(SPRING_PROFILES_ACTIVE)){
profile=System.getenv(SPRING_PROFILES_ACTIVE);
}else if(null!= System.getProperty(SPRING_PROFILES_ACTIVE)){
profile=System.getProperty(SPRING_PROFILES_ACTIVE);
}else{
profile="local";
}
log.info("***** Profile set ---> "+ profile);
}
我正在使用System.getenv和System.getProperty因为我发现在我的本地系统中System.getProperty工作但我的docker容器System.getenv()工作。
另外,如果没有设置任何内容,我将配置文件默认为“本地”配置文件。