第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在所有微服務(wù)中維護相同的 Spring Boot 版本?

如何在所有微服務(wù)中維護相同的 Spring Boot 版本?

梵蒂岡之花 2022-11-02 10:05:09
我正在使用微服務(wù)架構(gòu)創(chuàng)建一個應(yīng)用程序。我想知道我們是否可以在所有微服務(wù)中管理相同的 Spring Boot 版本。我只是不想在創(chuàng)建新微服務(wù)時在 pom.xml 中提及 Spring Boot 版本。如果我們可以在一個位置管理 Spring Boot 版本,那么它將確保所有微服務(wù)都使用相同的 Spring Boot 版本,并且很容易為所有微服務(wù)升級它。如果可以,如何管理?這是一個好習(xí)慣嗎?
查看完整描述

5 回答

?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

如果您真的想這樣做,您可以使用Maven構(gòu)建您的單獨應(yīng)用程序(微服務(wù)),使用父 POM 和 Maven 的依賴管理功能(依賴管理與 Depdencies 不同)來控制使用哪個版本的 Spring Boot。

但是,您不應(yīng)該嚴(yán)格要求所有微服務(wù)都使用相同版本的 Spring Boot。如果你這樣做了,并且其中一個微服務(wù)必須使用更新版本的 Spring Boot(例如,因為它有一個關(guān)鍵的新特性),那么你就是在強制所有微服務(wù)同時更新。微服務(wù)的主要優(yōu)勢之一是每個微服務(wù)都可以單獨構(gòu)建、更新和部署升級,因此您將剝奪您的系統(tǒng)的這種優(yōu)勢。

但是,如果做得好,這可以為您帶來兩全其美的效果。

  • 舊的微服務(wù)可以繼續(xù)使用舊版本的父 POM。

  • 新的和更新的微服務(wù)可以使用新版本的父 POM。

  • 很容易看出微服務(wù)是否使用(非常)舊版本的父 POM,因此應(yīng)該更新。

  • 父 POM 的當(dāng)前版本可以指示您認為使用哪些版本的依賴項是“最佳實踐”。

但是,不要試圖使用多模塊 Maven 結(jié)構(gòu),因為那樣會強制微服務(wù)使用相同的 Spring Boot 版本,這會在每個微服務(wù)的構(gòu)建中引入過多的耦合。


查看完整回答
反對 回復(fù) 2022-11-02
?
天涯盡頭無女友

TA貢獻1831條經(jīng)驗 獲得超9個贊

雖然“獨立性”確實是微服務(wù)環(huán)境中的一個重要價值,但這并不意味著猖獗的代碼重復(fù)是首選。選擇兩害相權(quán)取其輕,創(chuàng)建一個僅包含 pom 文件(無 java 代碼)的父項目,并讓所有微服務(wù)使用這個 pom 作為其父 pom。在這個父 pom 文件中,您可以使用標(biāo)簽聲明所有依賴項的<dependencyManagement>所有版本以及使用標(biāo)簽聲明插件的所有版本<pluginManagement>。這些標(biāo)簽實際上并沒有向您的實際項目添加任何依賴項或插件,它只是聲明了項目過于依賴它們時要使用的版本。

如果你已經(jīng)在使用 spring-boot-starter pom 作為你的父級,這可以傳遞:你的微服務(wù)有你的父級 pom,你的父級 pom 有 spring boot starter pom 作為它自己的父級。

如果在未來某個時候,一個微服務(wù)需要從這個父 pom 中分離出一個或多個特定依賴項,您可以在該項目的 pom 中聲明新版本,而這些值將被使用,有效地覆蓋父 pom 中聲明的內(nèi)容( s),因此您不會失去這種靈活性。

然而,我們已經(jīng)使用 Spring Boot 微服務(wù)兩年了,同時保持環(huán)境一致和易于升級已證明對我們來說比獨立更有價值。


查看完整回答
反對 回復(fù) 2022-11-02
?
滄海一幻覺

TA貢獻1824條經(jīng)驗 獲得超5個贊

如果可以,如何管理?

使用 Maven/Gradle 父 pom 定義微服務(wù)項目將繼承的所有版本和依賴項。

這是一個好習(xí)慣嗎?

是的,有一定的衡量標(biāo)準(zhǔn)。
這是個好主意,因為通過您開發(fā)/維護的一組項目使用一致的依賴版本是個好主意。
但這并不意味著所有項目都會在 N 時刻使用相同版本的父 pom,但理想情況下,它們應(yīng)該傾向于使用最新版本,就像你的父 pom 的最后一個版本一樣使用 Spring Boot 的最后一個穩(wěn)定版本。


查看完整回答
反對 回復(fù) 2022-11-02
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

對于每個微服務(wù),它們應(yīng)該有自己的版本。每個微服務(wù)都應(yīng)該有自己的升級周期。如果您最終創(chuàng)建了一個檢測 Spring Boot 版本的通用項目。不同的微服務(wù)無法繼續(xù)利用 Spring 中的新功能以及其他可能依賴于特定 Spring 版本的框架



查看完整回答
反對 回復(fù) 2022-11-02
?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

作為一種選擇,如果您使用私有 Maven 存儲庫,您可以為您使用的所有 Spring 庫安裝一個版本的工件(甚至更多,您可以將它們?nèi)繕?biāo)記為自定義版本)。然后在您的所有項目中,只需在依賴項中使用此標(biāo)記即可。



查看完整回答
反對 回復(fù) 2022-11-02
  • 5 回答
  • 0 關(guān)注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號