如何从java获取弹簧配置文件名称
问题描述:
我对每个配置文件都有单独的弹簧yaml配置文件。如何从java获取弹簧配置文件名称
我需要从CommandLineRunner
后代类读取配置文件并执行相应的脚本。
有没有办法从java获取环境配置文件名?
我已经试过这样:
environment.getActiveProfiles();
但它只返回一个空字符串数组。
答
- 您是否有活动档案?当没有时,它什么也没有显示。
- 您也可以使用
environment.getProperty("spring.profiles.active")
获取活动配置文件。
答
这种方法
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的工作,但在我的搬运工集装箱系统为我工作得很好。 getenv()工作。
另外,如果没有设置任何设置,我默认配置文件为“本地”配置文件。