Spring Boot項目如何使用外部application.yml配置文件啟動JAR包
Spring Boot項目中使用外部application.yml配置文件啟動JAR包
一、基本原理
Spring Boot默認(rèn)會加載項目內(nèi)部的application.yml或application.properties文件。但如果我們希望使用外部配置文件,可以通過設(shè)置spring.config.location屬性來指定外部配置文件的路徑。這種方式允許配置文件獨(dú)立于JAR包存在,便于修改和部署。
二、具體操作步驟
1. 準(zhǔn)備外部配置文件
將application.yml文件放置在項目外部,例如放在以下路徑:
/opt/config/application.ymlD:\config\application.yml
確保該文件包含你需要的配置內(nèi)容,例如:
spring:
datasource:
url: jdbc:mysql://localhost:3306/test_db
username: root
password: secret
server:
port: 80802. 打包項目為JAR文件
在項目根目錄下,使用Maven或Gradle打包項目,確保JAR包內(nèi)不包含application.yml文件。例如,使用Maven:
mvn clean package -DskipTests
3. 啟動JAR包并指定外部配置文件
使用以下命令啟動JAR包,并指定外部配置文件的路徑:
java -jar your-app.jar --spring.config.location=file:/opt/config/application.yml
或者,如果配置文件位于Windows系統(tǒng)的某個路徑:
java -jar your-app.jar --spring.config.location=file:D:\config\application.yml
4. 驗證配置是否生效
啟動后,可以通過日志或應(yīng)用程序中的配置項檢查外部配置文件是否被正確加載。例如,檢查數(shù)據(jù)庫連接是否使用了外部配置文件中的URL和用戶名。
三、注意事項
- 優(yōu)先級問題:
- 使用
--spring.config.location指定外部配置文件后,Spring Boot將不再加載JAR包內(nèi)部的默認(rèn)配置文件。 - 如果需要同時加載JAR包內(nèi)部的默認(rèn)配置文件和外部配置文件,可以使用
--spring.config.additional-location參數(shù):java -jar your-app.jar --spring.config.additional-location=file:/opt/config/application.yml
- 使用
- 路徑格式:
- 確保路徑格式正確,例如在Linux系統(tǒng)下使用正斜杠(
/),在Windows系統(tǒng)下使用反斜杠(\)或正斜杠(/)。 - 如果路徑中包含空格,需要用引號包裹:
java -jar your-app.jar --spring.config.location="file:/opt/my config/application.yml"
- 確保路徑格式正確,例如在Linux系統(tǒng)下使用正斜杠(
- 權(quán)限問題:
- 確保啟動JAR包的用戶對配置文件路徑有讀取權(quán)限,否則可能導(dǎo)致配置文件無法加載。
- 配置沖突:
- 如果外部配置文件和JAR包內(nèi)部的配置文件存在相同的配置項,外部配置文件的配置會覆蓋內(nèi)部的配置。
- 測試配置:
- 建議在正式使用前,先手動測試啟動命令,確保配置文件被正確加載且應(yīng)用程序按預(yù)期運(yùn)行。
四、示例
假設(shè)你有一個Spring Boot項目,打包后生成的JAR文件名為myapp.jar,并希望使用外部配置文件/opt/config/application.yml啟動。啟動命令如下:
java -jar myapp.jar --spring.config.location=file:/opt/config/application.yml
如果外部配置文件位于Windows系統(tǒng)的D:\config\application.yml,則命令為:
java -jar myapp.jar --spring.config.location=file:D:\config\application.yml
到此這篇關(guān)于Spring Boot項目中使用外部application.yml配置文件啟動JAR包的文章就介紹到這了,更多相關(guān)springboot application.yml配置文件啟動jar包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot的配置文件application.yml及加載順序詳解
- 解決SpringBoot配置文件application.yml遇到的坑
- Springboot如何獲取配置文件application.yml中自定義的變量并使用
- SpringBoot讀取properties或者application.yml配置文件中的數(shù)據(jù)
- 詳解springboot啟動時是如何加載配置文件application.yml文件
- Springboot為什么加載不上application.yml的配置文件
- springboot如何讀取配置文件(application.yml)中的屬性值
- springboot項目(jar包)指定配置文件啟動圖文教程
- springboot jar包外置配置文件的解決方法
相關(guān)文章
Java用正則表達(dá)式實(shí)現(xiàn)${name}形式的字符串模板實(shí)例
這篇文章主要給大家介紹了Java如何用正則表達(dá)式實(shí)現(xiàn)${name}形式的字符串模板,文章給出詳細(xì)的實(shí)例代碼,對大家的理解和學(xué)習(xí)會很有幫助,有需要的朋友們下面來一起看看吧。2016-12-12
Java中StringBuilder類常用方法總結(jié)
這篇文章主要介紹了Java中StringBuilder類常用方法的相關(guān)資料,StringBuilder類是Java中用于頻繁修改字符串的可變字符串緩沖區(qū)類,它提供了多種方法進(jìn)行字符串操作,如添加、插入、刪除、替換字符等,需要的朋友可以參考下2024-12-12
SpringBoot整合dataworks的實(shí)現(xiàn)過程
這篇文章主要介紹了SpringBoot整合dataworks的實(shí)現(xiàn)過程,實(shí)現(xiàn)主要是編寫工具類,如果需要則可以配置成SpringBean,注入容器即可使用,需要的朋友可以參考下2022-08-08
Java CountDownLatch應(yīng)用場景代碼實(shí)例
這篇文章主要介紹了Java CountDownLatch應(yīng)用場景代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Java新特性之Nashorn_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java新特性之Nashorn的相關(guān)資料,需要的朋友可以參考下2017-06-06
Java設(shè)計模式之橋接模式的實(shí)現(xiàn)
今天給大家?guī)淼奈恼率荍ava設(shè)計模式的相關(guān)知識點(diǎn),文中對橋接模式作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
詳解DES加密算法的原理與Java實(shí)現(xiàn)
DES 加密,是對稱加密。對稱加密,顧名思義,加密和解密的運(yùn)算全都是使用的同樣的秘鑰。這篇文章主要為大家講講DES加密算法的原理與Java實(shí)現(xiàn),需要的可以參考一下2022-10-10

