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
1
的確發現訪問端口是1000 ,而不是裏邊的3000 。
然後我又拿到外邊來,下邊這個是application.properties 文件放置位置。提前我將它的port 設置爲2000
在當前位置直接啓動jar包:
java -jar cloud-lyzx-project.war
1
你會發現,訪問端口是2000 ,還不是裏邊的3000 。
---------------------
作者:JAVA碼上飄
來源:CSDN
原文:https://blog.csdn.net/wohaqiyi/article/details/79940380
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!