spring boot 項目的配置文件加載順序

spring boot 項目的配置文件加載順序

加載順序如下

  1. 在命令行中傳入的參數(shù)。
  2. SPRING_APPLICATION_JSON 中的屬性。SPRING_APPLICATION_JSON 是以JSON格式配置在系統(tǒng)環(huán)境變量中的內(nèi)容。
  3. java:comp/env中的JNDI屬性。
  4. Java的系統(tǒng)屬性,可以通過System.getProperties()獲得的內(nèi)容。
  5. 操作系統(tǒng)的環(huán)境變量。
  6. 通過random.*配置的隨機屬性。
  7. 位于當(dāng)前應(yīng)用 jar 包之外,針對不同{profile}環(huán)境的配置文件內(nèi)容,例如application-{profile}.properties或是YAML定義的配置文件。
  8. 位于當(dāng)前應(yīng)用 jar 包之內(nèi),針對不同{profile}環(huán)境的配置文件內(nèi)容,例如application-{profile}.properties或是YAML定義的配置文件。
  9. 位于當(dāng)前應(yīng)用jar包之外的application.properties和YAML配置內(nèi)容。
  10. 位于當(dāng)前應(yīng)用jar包之內(nèi)的application.properties和YAML配置內(nèi)容。
  11. 在@Configuration注解修改的類中,通過@PropertySource注解定義的屬性。
  12. 應(yīng)用默認(rèn)屬性,使用 SpringApplication.setDefaultProperties 定義的內(nèi)容。

說明

優(yōu)先級按上面的順序由高到低,數(shù)字越小優(yōu)先級越高
當(dāng)加載過程中發(fā)現(xiàn)有相同屬性已經(jīng)加載過了,則不會再覆蓋值
可以看到,其中第7項和第9項都是從應(yīng)用jar包之外讀取配置文件,
所以,實現(xiàn)外部化配置的原理就是從此切入,為其指定外部配置文件的加載位置來取代jar包之內(nèi)的配置內(nèi)容。
通過這樣的實現(xiàn),我們的工程在配置中就變得非常干凈,只需在本地放置開發(fā)需要的配置即可,而不用關(guān)心其他環(huán)境的配置,由其對應(yīng)環(huán)境的負(fù)責(zé)人去維護即可。
這也是spring cloud config實現(xiàn)的機制基礎(chǔ)

摘抄自<<Spring Cloud微服務(wù)實戰(zhàn)>>

官網(wǎng)上的:
https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-external-config.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容