2017-03-09 40 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()工作。

另外,如果沒有設置任何設置,我默認配置文件爲「本地」配置文件。