1、配置文件的加載位置
- springboot會自動掃描application.properties或application.yml文件作為springboot的默認配置在文件
- file:./config/(項目下的config,和src同級) file:./ classpath:/config/ classpath:/ 是優先級由高到低的順序,所有未知的文件都會被加載,高優先級的配置內容會覆蓋低優先級的內容
(1)同時新建兩個配置文件,一個在config目錄下,另一個在classpath:路徑下
默認訪問的是config目錄下的配置文件:
在與項目的src目錄同一級新建一個config目錄,在該目錄下書寫配置:再次訪問上面的路徑,已經失效,需要訪問新的配置中的端口號
也就是說高優先級的配置覆蓋了低優先級的配置
(2)互補配置:高優先級有的話使用高優先級的配置,沒有的話就用低優先級的配置
訪問controller的時候,用到的是高優先級的端口號和低優先級的訪問路徑
(3)項目打包好以后,我們可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新位置,指定的配置文件和默認加載的配置文件會一起起作用形成互補配置
打包:
運行:使用的路徑是在本地磁盤上的配置文件的路徑
java -jar demo-0.0.1-SNAPSHOT.jar --spring.config.additional-location=D:/Desktop/application.properties
2、外部配置的加載順序
高優先級的配置會覆蓋低優先級的配置形成互補配置,下面的命令行方式的參數配置的優先級最高
(1)運行jar包
java -jar demo-0.0.1-SNAPSHOT.jar
默認運行的是項目參與打包的最高優先級的配置文件:
測試:
(2)命令行方式修改配置
在運行jar包的時候,在命令行后添加參數:
java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8888
測試:
(3)命令行方式修改多個配置
測試:
多個參數用空格分隔
(4)讀取配置文件上的參數
需要在與jar包同一級的目錄下新建一個配置文件:
在配置文件中書寫相關參數:此種方式適合要添加的參數較多的情況
測試: