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.ymlfile
使用file:前綴來指定文件系統(tǒng)中的配置文件。這允許你引用位于項目外部的配置文件。
spring:
config:
import: file:/path/to/external-config.ymloptional
使用optional:前綴可以指定一個配置文件,如果該文件不存在,不會拋出錯誤,應(yīng)用程序會繼續(xù)啟動。這在引用可選配置時非常有用。
spring:
config:
import: optional:classpath:optional-config.ymlnacos
如果你使用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-10
springboot跨域訪問cros與@CrossOrigin注解詳析
這篇文章主要給大家介紹了關(guān)于springboot跨域訪問cros與@CrossOrigin注解的相關(guān)資料,跨域是指不同域名之間相互訪問,它是瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制,需要的朋友可以參考下2023-12-12
Java集合基礎(chǔ)知識 List/Set/Map詳解
這篇文章主要介紹了Java集合基礎(chǔ)知識 List/Set/Map,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
SpringBoot下使用定時任務(wù)的方式全揭秘(6種)
這篇文章主要介紹了SpringBoot下使用定時任務(wù)的方式全揭秘(6種),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
Logger.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

