Spring boot 配置文件默認放置位置,和加載優先級


一 、默認配置文件目錄

  spring boot 啟動會掃描以下位置的application.properties 或者application.yml文件作為spring boot 的默認配置文件 ,加載的優先由上到下,加載的時候,會把以下路勁的文件都加載一遍。不同的配置內容會全部加載到系統,對於重復的配置內容,優先級別高的配置文件內容會覆蓋優先級別低的配置文件內容。

 
路勁 說明
file:./config/ 工程文件夾下的config目錄。
file:/ 工程文件夾目錄,如果是maven項目那么和pom.xml是一個層級
classPath:/config/ 工程 classPath文件夾下的config文件夾
classPath:/ 工程classpath文件夾

  除了上述的文件目錄以外,還可以用spring.config.location 參數的形式指定配置文件 :java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties ,如果上述的默認路勁有配置文件的話,會和配置內容會形成互補作用,相同的內容優先級別高的會覆蓋優先級別低的。


二、外部配置

  有時候工程已經打成jar了 ,想修改系統的配置,SpringBoot也可以從jar包外面設置參數,加載配置; 以下設置優先級從高到低;高優先級的配置覆蓋低優先級的配置,所有的配置會 形成互補配置

  1.命令行參數
    所有的配置都可以在命令行上進行指定 ,多個配置用空格分開; --配置項=
    java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
  2.來自java:comp/envJNDI屬性
  3.Java系統屬性(System.getProperties()
  4.操作系統環境變量
  5.RandomValuePropertySource配置的random.*屬性值
  在工程jar包的層級目錄下建立配置文件如: 那么以參數的形式啟動工程:
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar ,加載配置文件,會按以下規則,  jar包外向jar包內進行尋找;

  優先加載帶profile
  6.jar包外部的application-{profile}.propertiesapplication.yml(spring.profile)配置文件
  7.jar包內部的application-{profile}.propertiesapplication.yml(spring.profile)配置文件
  再來加載不帶profile
  8.jar包外部的application.propertiesapplication.yml(不帶spring.profile)配置文件
  9.jar包內部的application.propertiesapplication.yml(不帶spring.profile)配置文件
  10.@Configuration注解類上的@PropertySource
  11.通過SpringApplication.setDefaultProperties指定的默認屬性
  所有支持的配置加載來源;

 


免責聲明!

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



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