springboot導(dǎo)入多個(gè)配置文件的方法實(shí)踐
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)中的配置文件。這通常用于引用項(xiàng)目內(nèi)部的資源,如src/main/resources目錄下的文件。
spring:
config:
import: classpath:custom-config.ymlfile
使用file:前綴來指定文件系統(tǒng)中的配置文件。這允許你引用位于項(xiàng)目外部的配置文件。
spring:
config:
import: file:/path/to/external-config.ymloptional
使用optional:前綴可以指定一個(gè)配置文件,如果該文件不存在,不會(huì)拋出錯(cuò)誤,應(yīng)用程序會(huì)繼續(xù)啟動(dòng)。這在引用可選配置時(shí)非常有用。
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)入一個(gè)目錄下的所有配置文件。這在有多個(gè)配置文件需要被一起加載時(shí)非常有用。
spring:
config:
import: classpath:config-templates/*.yml無擴(kuò)展名文件
如果你需要導(dǎo)入沒有擴(kuò)展名的文件,可以在文件名后添加方括號(hào),例如classpath:additional-application[.yml]。
spring:
config:
import: classpath:additional-application[.yml]目錄導(dǎo)入
你可以導(dǎo)入整個(gè)目錄下的配置文件,Spring Boot會(huì)自動(dòng)加載目錄下的所有.properties和.yml文件。
spring:
config:
import: classpath:config-import-dir/特定環(huán)境配置文件
雖然不是spring.config.import的直接選項(xiàng),但你可以創(chuàng)建特定于環(huán)境的配置文件(如application-dev.yml),并通過激活相應(yīng)的profile來加載它們。
java -jar myapp.jar --spring.profiles.active=dev
命令行參數(shù)
雖然不是在application.yml或application.properties中設(shè)置,但你可以在啟動(dòng)應(yīng)用程序時(shí)通過命令行參數(shù)來導(dǎo)入配置文件。
java -jar myapp.jar --spring.config.import=classpath:another-config.yml
這些選項(xiàng)提供了靈活的方式來組織和管理你的配置文件,使得你可以根據(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)入多個(gè)配置文件的方法實(shí)踐的文章就介紹到這了,更多相關(guān)springboot導(dǎo)入多配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)讀取項(xiàng)目中文件(.json或.properties)的方法詳解
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)讀取項(xiàng)目中文件的方法,例如.json或.properties,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04
Spring中@Validated和@Valid區(qū)別淺析
@Valid是javax.validation里的,?@Validated是@Valid?的一次封裝,是Spring提供的校驗(yàn)機(jī)制使用,下面這篇文章主要給大家介紹了關(guān)于Spring中@Validated和@Valid區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-04-04
Java String方法獲取字符出現(xiàn)次數(shù)及字符最大相同部分示例
這篇文章主要介紹了Java String方法獲取字符出現(xiàn)次數(shù)及字符最大相同部分,涉及java字符串的遍歷、比較、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
Java實(shí)現(xiàn)數(shù)據(jù)脫敏的方法詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)數(shù)據(jù)脫敏的相關(guān)資料,數(shù)據(jù)脫敏是指對某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù),需要的朋友可以參考下2023-06-06
一文帶你學(xué)會(huì)Java網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。這篇文章將帶大家深入了解一下Java的網(wǎng)絡(luò)編程,需要的可以了解一下2022-08-08
SpringBoot下使用定時(shí)任務(wù)的方式全揭秘(6種)
這篇文章主要介紹了SpringBoot下使用定時(shí)任務(wù)的方式全揭秘(6種),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
SpringBoot中的CompletableFuture類詳解
這篇文章主要介紹了SpringBoot中的CompletableFuture類詳解,在?Java8中,引入了CompletableFuture類,它提供了一種簡單而強(qiáng)大的方式來執(zhí)行異步任務(wù),今天我們就來詳細(xì)解讀一下這個(gè)類,需要的朋友可以參考下2023-07-07
Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
基于Spring Cloud實(shí)現(xiàn)文件服務(wù)預(yù)覽與靜態(tài)資源映射
本文檔針對 Spring Cloud 微服務(wù)架構(gòu)中文件上傳服務(wù)的預(yù)覽需求,系統(tǒng)分析多種技術(shù)方案的適用場景、性能特征及安全模型,并提供可落地的配置示例與最佳實(shí)踐,需要的朋友可以參考下2026-06-06

