天天看點

springBoot讀取配置檔案的先後順序

springBoot讀取配置檔案的先後順序

     1.在指令行傳入的參數

     2.spring_application_json中的屬性。spring_application_json是以json格式配置在系統環境變量中的内容。

     3.java:comp/env中的JNDI屬性。

     4.java的系統屬性,可以通過System.getProperties()獲得的内容。

     5.作業系統的環境變量。

     6.通過random.*配置的随機屬性。

     7.位于目前應用ar包之外,正對不同{profile}環境的配置檔案内容,例如application-{profile}.properties或者yaml定義的配置檔案。

     8.位于目前應用jar包之内,針對不同{perofile}環境的配置檔案内容,例如application-{profile}。properties或者是yaml定義的檔案。

     9.位于目前應用jar包之外的application-properties和yaml配置的檔案。

     10.位于目前應用jar包之内的application-properties和yaml配置的檔案。

     11.在@Configuration注解修改的類中,通過@PropertySource注解定義的屬性。

     12.應用預設屬性,使用SpringApplication.setDefaultProperties定義的内容。

優先級按上面的順序由由低到高,數字越小優先級越大

可以看到,其中第7項和第9項都是從應用jar包之外讀取配置檔案,是以,實作外部化配置的原理就是從此切入,為其指定外部配置檔案的加載位置來取代jar包之内的配置容器。通過這樣的實作,我們的工程在配置中就變得非常幹淨,隻需要在本地放置開發需要的配置即可,而不用關心其他環境的配置,尤其對應環境的負責人去維護即可。

————————————————

版權聲明:本文為CSDN部落客「賣事先串通的人索的小火柴」的原創文章,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/qq_33220089/article/details/100122785