springboot啟動讀取外部配置文件
有時候項目打包成一個jar 或者war ,通過java -jar 命令運行springboot 項目,因為springboot 項目有自己的application.properties 配置文件,但是我們打完包之后,它也會打到包里邊,倒是也能打開壓縮包修改properties 文件,但是也是較為麻煩。
現在有如下需求,比如客戶需要在很多個服務器部署一套項目,但是它們的數據庫連接不一樣,我們不能針對於這么多服務器,多次打包,很惡心,當然可以打完包,復制一堆,分別修改壓縮包里邊的配置文件。
springboot 有讀取外部配置文件的方法,如下優先級:
第一種是在jar包的同一目錄下建一個config文件夾,然后把配置文件放到這個文件夾下。
第二種是直接把配置文件放到jar包的同級目錄。
第三種在classpath下建一個config文件夾,然后把配置文件放進去。
第四種是在classpath下直接放配置文件。
看到如上的優先級了嗎?也就是說springboot 默認是優先讀取它本身同級目錄下的一個config/application.properties 文件的。我們通常在src/main/resources 文件夾下創建的application.properties 文件的優先級竟然是最低的!!!。
下邊這個是config/application.properties 文件放置位置。提前我將它的port 設置為1000 ,另外war 包里也有一個application.properties 文件,它的port 是3000 。
直接命令執行:
java -jar cloud-lyzx-project.war
的確發現訪問端口是1000
,而不是里邊的3000
。
然后我又拿到外邊來,下邊這個是application.properties
文件放置位置。提前我將它的port
設置為2000
————————————————
版權聲明:本文為CSDN博主「JAVA碼上飄」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wohaqiyi/java/article/details/79940380