溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題

發(fā)布時(shí)間:2021-12-01 11:08:44 來(lái)源:億速云 閱讀:242 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

springboot多模塊的共用配置文件

項(xiàng)目中遇到這樣的問(wèn)題

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

springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題

有沒(méi)有辦法實(shí)現(xiàn)這樣的需求

公共模塊comm,配置了參數(shù),應(yīng)用A 依賴comm,如果A里配置了相同的參數(shù),則會(huì)覆蓋comm里設(shè)置的 參數(shù),如果A里沒(méi)設(shè)置,那就采用comm里的參數(shù)配置?

經(jīng)過(guò)半個(gè)小時(shí)的測(cè)試,答案是肯定的:

1、架構(gòu)草圖如圖所示:

springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題

2、application.yml:

springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題

3、經(jīng)測(cè)試,dev也就是說(shuō)上層的配置文件要放在后面

他會(huì)覆蓋前面的相同參數(shù),如果后面的配置文件里沒(méi)有配置,就采用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(開(kāi)發(fā)環(huán)境)和application-product.yml(生產(chǎn)環(huán)境)。

要想加載其中的一個(gè),就需要配置application.yml中的spring.profiles.active為development(配置文件以application-開(kāi)頭)。然而,如果你的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。

感謝各位的閱讀!關(guān)于“springboot多模塊中的共用配置文件會(huì)遇到什么問(wèn)題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI