springboot多模塊中的共用配置文件詳解
springboot多模塊的共用配置文件
項目中遇到這樣的問題
公共模塊comm有些參數(shù)是配置文件里配置的,其他的應(yīng)用依賴comm包,這樣一來每個應(yīng)用都需要配置一個與comm相同的參數(shù)才行,否則啟動時,報錯。找不到配置參數(shù),無法解析的異常:
有沒有辦法實現(xiàn)這樣的需求
公共模塊comm,配置了參數(shù),應(yīng)用A 依賴comm,如果A里配置了相同的參數(shù),則會覆蓋comm里設(shè)置的 參數(shù),如果A里沒設(shè)置,那就采用comm里的參數(shù)配置?
經(jīng)過半個小時的測試,答案是肯定的:
1、架構(gòu)草圖如圖所示:
2、application.yml:
3、經(jīng)測試,dev也就是說上層的配置文件要放在后面
他會覆蓋前面的相同參數(shù),如果后面的配置文件里沒有配置,就采用commdev公共模塊的共用參數(shù)。
springboot多模塊下yml配置文件的加載
如果你的項目有多個模塊,比如,幾個項目要共用一個數(shù)據(jù)模塊(DataModule),API部分為一個模塊(APIModule)。如果要切換不同的環(huán)境,需要設(shè)置不同的數(shù)據(jù)庫地址,如果數(shù)據(jù)分布于多個數(shù)據(jù)源中,手動修改yml中的地址顯然不實際而且容易出錯,所以需要將不同的數(shù)據(jù)源放在不同的yml中,在編譯時修改一個yml中的配置即可
具體例子如下
APIModule下有application.yml,如果環(huán)境不同,本模塊的配置也需要有相應(yīng)的區(qū)別,那么可以增加application-development.yml(開發(fā)環(huán)境)和application-product.yml(生產(chǎn)環(huán)境)。
要想加載其中的一個,就需要配置application.yml中的spring.profiles.active為development(配置文件以application-開頭)。然而,如果你的DataModule下的yml文件的命名規(guī)則與APIModule一樣的話,則會發(fā)現(xiàn)數(shù)據(jù)模塊配置的東西讀不到了。
此時必須將沖突的名稱改名,如:將Datamodule的yml文件改為application-datadevelopment.yml和application-dataproduct.yml并在APIModule的application.yml文件中的spring.profiles.active中增加datadevelopment,即可加載這兩個模塊的dev配置了。
同理,要修改為生產(chǎn)環(huán)境,spring.profiles.active則為product,dataproduct。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用JPA+querydsl如何實現(xiàn)多條件動態(tài)查詢
這篇文章主要介紹了使用JPA+querydsl如何實現(xiàn)多條件動態(tài)查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot部署到外部Tomcat無法注冊到Nacos服務(wù)端的解決思路
這篇文章主要介紹了SpringBoot部署到外部Tomcat無法注冊到Nacos服務(wù)端,本文給大家分享完美解決思路,結(jié)合實例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-03-03Spring和SpringMVC父子容器關(guān)系初窺(小結(jié))
這篇文章主要介紹了Spring和SpringMVC父子容器關(guān)系初窺(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn)
本文主要介紹了SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11Java中集合List、Set和Map的入門詳細(xì)介紹
Java集合主要分為三種類型:Set(集)、List(列表)和Map(映射),下面這篇文章主要給大家介紹了關(guān)于Java中集合List、Set和Map的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01