在SpringBoot 中,可以將設定檔放在jar 套件外面,這樣可以方便地修改設定而不需要重新打包和部署。
以下是指定設定檔目錄的幾種方法: (按生效優先順序從高到低排序)
在啟動應用程式時,可以使用--spring.config.location
或-Dspring.config.location
命令列參數來指定設定檔的路徑,例如:( config 後面的/
不可省略)
java -jar test.jar --spring.config.location=/opt/app/config/
補充:FHS將/opt定義為「為安裝附加應用軟體包而保留」。所以這裡選擇 /opt
資料夾來存放應用程式的設定檔。
可以設定SPRING_CONFIG_LOCATION
環境變數來指定設定檔的路徑,例如:
export SPRING_CONFIG_LOCATION=/opt/app/config/ java -jar test.jar
方法一: 在應用程式(jar套件)啟動指令執行目錄下
建立一個名為config
的資料夾,然後將設定檔放在該資料夾中。
方法二: 在應用程式(jar套件)同級目錄下
建立一個名為config
的資料夾,然後將設定檔放在該資料夾中。在程式碼的設定檔application.properties
或application.yml
中新增以下行:
spring.config.name=application spring.config.location=classpath:/,file:./config/
#方法三: 在應用程式(jar套件)同級目錄下
直接放properties
或yml
設定檔。
方法四: 在應用程式(jar套件)內部的classpath
的同級目錄下
,創建config
資料夾,然後放上properties
或yml
設定檔。
方法五: 在應用程式(jar套件)內部的classpath
的同級目錄下
,然後直接放properties
或yml
設定檔。
注意:以上方法可以組合使用,例如,可以在命令列參數和環境變數中同時指定設定檔的路徑,執行時命令列參數的優先權最高。
#java -jar
命令列中,透過--spring. config.location
參數指定的方式優先權最高。
設定 SPRING_CONFIG_LOCATION
環境變數來指定設定檔的路徑是次優先權。
在執行 java -jar
指令同級目錄下的 config
資料夾是第三優先權。
注意:如果java -jar
指令不是在專案jar 套件同級目錄執行的話,在專案jar 套件同級目錄下的config
資料夾是不生效的。
專案jar 套件中properties
或yml
檔案中指定spring.config.location
設定資料夾是第四優先級。
專案 jar 套件同級下直接放 properties
檔案是第五優先級,直接把設定檔放到 jar 套件的同級目錄。
專案內部的classpath
同級config
資料夾是第六優先權,在classpath 建置一個config 資料夾,然後把設定檔放進去。
專案內部的classpath
同級放properties
檔案是最低優先權,是在classpath
下直接放設定檔。
SpringBoot 預設是優先讀取java -jar
命令同級目錄下的一個 config/application.properties
檔案的。
在專案內 src/main/resources
資料夾下建立的 application.properties
檔案的優先權是最低的。
以上是SpringBoot怎麼將設定檔掛到jar包外面的詳細內容。更多資訊請關注PHP中文網其他相關文章!