2017-03-09 105 views
-1

我对每个配置文件都有单独的弹簧yaml配置文件。如何从java获取弹簧配置文件名称

我需要从CommandLineRunner后代类读取配置文件并执行相应的脚本。

有没有办法从java获取环境配置文件名?

我已经试过这样:

environment.getActiveProfiles(); 

但它只返回一个空字符串数组。

回答

2
  1. 您是否有活动档案?当没有时,它什么也没有显示。
  2. 您也可以使用environment.getProperty("spring.profiles.active")获取活动配置文件。
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的工作,但在我的搬运工集装箱系统为我工作得很好。 getenv()工作。

另外,如果没有设置任何设置,我默认配置文件为“本地”配置文件。