springboot多模塊中的共用配置文件詳解
springboot多模塊的共用配置文件
項(xiàng)目中遇到這樣的問題
公共模塊comm有些參數(shù)是配置文件里配置的,其他的應(yīng)用依賴comm包,這樣一來每個(gè)應(yīng)用都需要配置一個(gè)與comm相同的參數(shù)才行,否則啟動(dòng)時(shí),報(bào)錯(cuò)。找不到配置參數(shù),無法解析的異常:

有沒有辦法實(shí)現(xiàn)這樣的需求
公共模塊comm,配置了參數(shù),應(yīng)用A 依賴comm,如果A里配置了相同的參數(shù),則會(huì)覆蓋comm里設(shè)置的 參數(shù),如果A里沒設(shè)置,那就采用comm里的參數(shù)配置?
經(jīng)過半個(gè)小時(shí)的測(cè)試,答案是肯定的:
1、架構(gòu)草圖如圖所示:

2、application.yml:

3、經(jīng)測(cè)試,dev也就是說上層的配置文件要放在后面
他會(huì)覆蓋前面的相同參數(shù),如果后面的配置文件里沒有配置,就采用commdev公共模塊的共用參數(shù)。
springboot多模塊下yml配置文件的加載
如果你的項(xiàng)目有多個(gè)模塊,比如,幾個(gè)項(xiàng)目要共用一個(gè)數(shù)據(jù)模塊(DataModule),API部分為一個(gè)模塊(APIModule)。如果要切換不同的環(huán)境,需要設(shè)置不同的數(shù)據(jù)庫(kù)地址,如果數(shù)據(jù)分布于多個(gè)數(shù)據(jù)源中,手動(dòng)修改yml中的地址顯然不實(shí)際而且容易出錯(cuò),所以需要將不同的數(shù)據(jù)源放在不同的yml中,在編譯時(shí)修改一個(gè)yml中的配置即可
具體例子如下
APIModule下有application.yml,如果環(huán)境不同,本模塊的配置也需要有相應(yīng)的區(qū)別,那么可以增加application-development.yml(開發(fā)環(huán)境)和application-product.yml(生產(chǎn)環(huán)境)。
要想加載其中的一個(gè),就需要配置application.yml中的spring.profiles.active為development(配置文件以application-開頭)。然而,如果你的DataModule下的yml文件的命名規(guī)則與APIModule一樣的話,則會(huì)發(fā)現(xiàn)數(shù)據(jù)模塊配置的東西讀不到了。
此時(shí)必須將沖突的名稱改名,如:將Datamodule的yml文件改為application-datadevelopment.yml和application-dataproduct.yml并在APIModule的application.yml文件中的spring.profiles.active中增加datadevelopment,即可加載這兩個(gè)模塊的dev配置了。
同理,要修改為生產(chǎn)環(huán)境,spring.profiles.active則為product,dataproduct。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化
Synchronized是Java中解決并發(fā)問題的一種最常用的方法,也是最簡(jiǎn)單的一種方法,下面這篇文章主要給大家介紹了關(guān)于Java?synchronized底層實(shí)現(xiàn)原理以及鎖優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-02-02
SpringBoot配置Access-Control-Allow-Origin教程
文章介紹了三種配置Spring Boot跨域訪問的方法:1. 使用過濾器;2. 在WebConfig配置文件中設(shè)置;3. 通過注解配置,作者分享了個(gè)人經(jīng)驗(yàn),并鼓勵(lì)讀者支持腳本之家2025-03-03
Springboot處理配置CORS跨域請(qǐng)求時(shí)碰到的坑
本篇文章介紹了我在開發(fā)過程中遇到的一個(gè)問題,以及解決該問題的過程及思路,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09
SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
在實(shí)際項(xiàng)目開發(fā)中可能存在需要同時(shí)操作兩個(gè)數(shù)據(jù)庫(kù)的場(chǎng)景,本文主要介紹了SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
同時(shí)使用@LoadBalanced?@RefreshScope注解負(fù)載均衡失效分析
這篇文章主要為大家介紹了同時(shí)使用@LoadBalanced?@RefreshScope負(fù)載均衡失效問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn)
本文主要介紹了SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

