springboot導(dǎo)入多個配置文件的方法實踐
1、簡介
Spring Boot從2.4.x版本開始支持了導(dǎo)入文件的方式來加載配置參數(shù),與spring.config.additional-location不同的是不用提前設(shè)置而且支持導(dǎo)入的文件類型相對來說要豐富很多。
我們只需要在application.properties/application.yml配置文件中通過spring.config.import屬性配置需要導(dǎo)入的文件列表即可。
通過spring.config.import屬性支持導(dǎo)入多種途徑的配置文件,下面簡單介紹幾種。
2、導(dǎo)入方式
classpath
使用classpath:
前綴來指定位于類路徑(classpath)中的配置文件。這通常用于引用項目內(nèi)部的資源,如src/main/resources
目錄下的文件。
spring: config: import: classpath:custom-config.yml
file
使用file:
前綴來指定文件系統(tǒng)中的配置文件。這允許你引用位于項目外部的配置文件。
spring: config: import: file:/path/to/external-config.yml
optional
使用optional:
前綴可以指定一個配置文件,如果該文件不存在,不會拋出錯誤,應(yīng)用程序會繼續(xù)啟動。這在引用可選配置時非常有用。
spring: config: import: optional:classpath:optional-config.yml
nacos
如果你使用Nacos作為配置中心,可以使用nacos:
前綴來導(dǎo)入Nacos中的配置文件。
spring: cloud: nacos: config: import: nacos:data-id:group-id
通配符導(dǎo)入
你可以使用通配符(如*
)來導(dǎo)入一個目錄下的所有配置文件。這在有多個配置文件需要被一起加載時非常有用。
spring: config: import: classpath:config-templates/*.yml
無擴展名文件
如果你需要導(dǎo)入沒有擴展名的文件,可以在文件名后添加方括號,例如classpath:additional-application[.yml]
。
spring: config: import: classpath:additional-application[.yml]
目錄導(dǎo)入
你可以導(dǎo)入整個目錄下的配置文件,Spring Boot會自動加載目錄下的所有.properties
和.yml
文件。
spring: config: import: classpath:config-import-dir/
特定環(huán)境配置文件
雖然不是spring.config.import
的直接選項,但你可以創(chuàng)建特定于環(huán)境的配置文件(如application-dev.yml
),并通過激活相應(yīng)的profile來加載它們。
java -jar myapp.jar --spring.profiles.active=dev
命令行參數(shù)
雖然不是在application.yml
或application.properties
中設(shè)置,但你可以在啟動應(yīng)用程序時通過命令行參數(shù)來導(dǎo)入配置文件。
java -jar myapp.jar --spring.config.import=classpath:another-config.yml
這些選項提供了靈活的方式來組織和管理你的配置文件,使得你可以根據(jù)不同的環(huán)境和需求來調(diào)整應(yīng)用程序的配置。
3、示例代碼
application.yml
server: port: 8080 spring: application: name: spring-config-multiple-demo config: import: - classpath:application-test.yml - classpath:application-learn.yml - classpath:application-user-list.yml
application-learn.yml
learn: cond: enabled: false
application-test.yml
test: app: id: 123 name: "張三"
application-user-list.yml
com: user: user-list: - name: "張三" id: 1 - name: "李四" id: 2 person-list: - name: "王五" id: 3 - name: "趙六" id: 4
到此這篇關(guān)于springboot導(dǎo)入多個配置文件的方法實踐的文章就介紹到這了,更多相關(guān)springboot導(dǎo)入多配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java web開發(fā)之購物車功能實現(xiàn)示例代碼
這篇文章主要介紹了java web開發(fā)之購物車功能實現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10springboot跨域訪問cros與@CrossOrigin注解詳析
這篇文章主要給大家介紹了關(guān)于springboot跨域訪問cros與@CrossOrigin注解的相關(guān)資料,跨域是指不同域名之間相互訪問,它是瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制,需要的朋友可以參考下2023-12-12Java集合基礎(chǔ)知識 List/Set/Map詳解
這篇文章主要介紹了Java集合基礎(chǔ)知識 List/Set/Map,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03SpringBoot下使用定時任務(wù)的方式全揭秘(6種)
這篇文章主要介紹了SpringBoot下使用定時任務(wù)的方式全揭秘(6種),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02Logger.getLogger()與LogFactory.getLog()的區(qū)別詳解
LogFactory來自common-logging包。如果用LogFactory.getLog,你可以用任何實現(xiàn)了通用日志接口的日志記錄器替換log4j,而程序不受影響2013-09-09如何利用Map與函數(shù)式接口來實現(xiàn)去除if else
這篇文章主要介紹了如何利用Map與函數(shù)式接口來實現(xiàn)去除if else問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07在Java中動態(tài)執(zhí)行字符串代碼的方法小結(jié)
在Java編程中,靜態(tài)編譯的特性通常不允許我們直接執(zhí)行運行時生成的代碼,然而,有時我們需要動態(tài)地生成并執(zhí)行代碼片段,本文將詳細介紹如何在Java中運行一段字符串代碼,并提供詳細的代碼案例和運行結(jié)果,需要的朋友可以參考下2024-08-08