Spring Boot的屬性加載順序


    伴隨着團隊的不斷壯大,往往不需要開發人員知道測試或者生產環境的全部配置細節,比如數據庫密碼,帳號信息等。而是希望由運維或者指定的人員去維護配置信息,那么如果要修改某項配置信息,就不得不去修改項目中的文件,導致運維人員有要維護項目代碼,造成職責不清,權限不清的問題。
    因此可以將配置文件外部化(這里不做介紹),使用配置文件外部化(比如使用Spring Cloud Config來管理)就需要了解Spring Boot對配置文件的加載機制。
    
    Spring Boot的屬性加載順序, 由優先級高到優先級低
  1. 在命令行中傳入的參數;
  2. SPRING_APPLICATION_JSON中的屬性,SPRING_APPLICATION_JSON是以JSON格式配置在系統環境變量中的內容;
  3. java:comp/env中的JNDI屬性;
  4. Java的系統屬性,可以通過System.getProperties()獲得的內容;
  5. 操作系統的環境變量;
  6. 通過random.*配置的隨機屬性;
  7. 位於當前應用Jar包之外,針對不同{profile}環境的配置文件內容,例如application-{profile}.properties或者yaml定義的配置文件;
  8. 位於當前應用Jar包之內,針對不同{profile}環境的配置文件內容,例如application-{profile}.properties或是yaml定義的配置文件;
  9. 位於當前應用Jar包之外的application.properties和yaml配置內容;
  10. 位於當前應用Jar包之內的application.properties和yaml配置內容;
  11. 在@Configuration注解修改類中,通過@PropertySource注解定義的屬性;
  12. 應用默認屬性,使用SpringApplication.setDefaultProperties定義的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM