chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Spring Cloud Tencent發(fā)布最新匹配版本!

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 作者:張樂、張皓天 ? 2022-12-09 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Spring Framework 6.0 已于11月份上旬正式發(fā)布 GA 版本。Spring Boot 3.0 也于11月25日正式發(fā)布 GA 版本。那么 Spring Cloud 2022 它還遠(yuǎn)嗎?

前言

Java 8 目前是國內(nèi)主流生產(chǎn)環(huán)境 Java 版本之一。雖然近幾年陸續(xù)發(fā)布了 Java 11、Java 17 官方 LTS 版本,但是 你發(fā)任你發(fā),我用Java8 的聲音反應(yīng)了大部分開發(fā)者的心聲。不過 Java 17 版本在性能上做了大量的優(yōu)化特別是 ZGC 的發(fā)布,促進(jìn)了國內(nèi)不少企業(yè)升級(jí)到 Java 17。

Spring 在 Java 語言的作用不言而喻,Spring Framework 5.0 發(fā)布已至今五年,是時(shí)候需要一個(gè)大的版本來革新技術(shù)棧了。借著 Java 17 的東風(fēng)我們認(rèn)為

“Java 17 + Spring Framework 6.0 + Spring Boot 3.0 + Spring Cloud 2022”

組合一定會(huì)在不久的將來被大家所接受,成為主流技術(shù)棧。當(dāng)然任何新技術(shù)大規(guī)模被認(rèn)可、落地都會(huì)有一定的滯后性,技術(shù)的發(fā)展 “穩(wěn)”字當(dāng)頭。

Spring Cloud Tencent 是基于騰訊開源的一站式微服務(wù)平臺(tái)北極星(集服務(wù)注冊(cè)發(fā)現(xiàn)、配置中心、服務(wù)限流熔斷、服務(wù)路由于一身)實(shí)現(xiàn)的 Spring Cloud 微服務(wù)解決方案套件。真正做到 “All In One”、 開箱即用,極大的降低企業(yè)的微服務(wù)實(shí)踐門檻。

無論北極星還是 Spring Cloud Tencent 當(dāng)前都在積極的修復(fù) Bug、完善用戶體驗(yàn)、迭代新功能。所以 Spring Cloud Tencent 也第一時(shí)間適配了 Spring Cloud 2022。此篇文章詳細(xì)講述了 Spring Cloud Tencent 從 2021 版本升級(jí)到 2022 版本的改動(dòng)點(diǎn)。為嘗鮮 2022 版本的廣大開發(fā)者提供一些參考。

一、升級(jí)過程

1.1 升級(jí)安裝 JDK 17

Oracle 官網(wǎng)下載 JDK 17 并安裝。安裝之后,本地修改 JAVA_HOME 環(huán)境變量,如下所示:

#echo$JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home
#java-version
javaversion"17.0.5"2022-10-18LTS
Java(TM)SERuntimeEnvironment(build17.0.5+9-LTS-191)
JavaHotSpot(TM)64-BitServerVM(build17.0.5+9-LTS-191,mixedmode,sharing)

安裝好 JDK 17 之后,同時(shí)需要在 Idea 里設(shè)置項(xiàng)目的編譯和運(yùn)行環(huán)境為 SDK 17。

1.2 升級(jí)依賴版本

Spring Cloud Tencent 項(xiàng)目引用的 Parent Pom 是 spring-cloud-build,所以需要升級(jí)到最新版本。

<parent>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-buildartifactId>
<version>4.0.0-RC2version>
<relativePath/>
parent>

可以看到 Spring-cloud-build 4.0.0-RC2 版本里定義的 Java 和 Spring Boot 版本已是最新的 Java 17 和 Spring Boot 3.0

<properties>
<java.version>17java.version>
<spring-boot.version>3.0.0-RC2spring-boot.version>
properties>

普通項(xiàng)目一般不需要繼承 spring-cloud-build ,而是通過 bom 的方式引入 Spring 全家桶。如果你的項(xiàng)目里定義了 Java、Spring Framework、Spring Boot、Spring Cloud 版本則需要同時(shí)升級(jí)。如下所示:

<properties>
<java.version>17java.version>
<spring.framework.version>6.0.1spring.framework.version>
<spring-boot.version>3.0.0spring-boot.version>
<spring.cloud.version>2022.0.0-RC2spring.cloud.version>
properties>
<dependencyManagement>
<dependencies>

<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-framework-bomartifactId>
<version>${spring.framework.version}version>
<type>pomtype>
<scope>importscope>
dependency>


<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-dependenciesartifactId>
<version>${spring.boot.version}version>
<type>pomtype>
<scope>importscope>
dependency>


<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>${spring.cloud.version}version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>

注意:Spring 非 GA 版本會(huì)先發(fā)布到 Spring 自己的 Maven 倉庫,而不會(huì)發(fā)布到中央倉庫。所以如果拉不到包,則需要在項(xiàng)目根 Pom 或者本地 ~/.m2/settings.xml 里配置 Spring Maven 倉庫。

<repositories>
<repository>
<id>nexus-snapshotsid>
<url>https://oss.sonatype.org/content/repositories/snapshots/url>
<releases>
<enabled>falseenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
repository>
<repository>
<id>spring-snapshotsid>
<name>SpringSnapshotsname>
<url>https://repo.spring.io/snapshoturl>
<snapshots>
<enabled>trueenabled>
snapshots>
<releases>
<enabled>falseenabled>
releases>
repository>
<repository>
<id>spring-milestonesid>
<name>SpringMilestonesname>
<url>https://repo.spring.io/milestoneurl>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>

在升級(jí)過程中,大概率會(huì)出現(xiàn)包沖突的情況,例如 SCT 在升級(jí)過程中發(fā)現(xiàn)日志依賴有問題導(dǎo)致 example 啟動(dòng)失敗。最后排查到原因:SCT 自己定義了 logback版本為 1.2.11,但是升級(jí) Spring Boot 3.0 里傳遞依賴的版本為 1.4.5,所以導(dǎo)致版本沖突。最后解決方案就是把 SCT 定義的版本去掉,只用傳遞依賴的版本。

Tips:解決版本沖突大概率會(huì)占用比較多的時(shí)間,升級(jí)過程需要有耐心

1.3 修改不兼容代碼

javax 包替換為 jakarta 包

這是Java17 最大變更點(diǎn)之一,代碼所有 import javax 都要替換為 jakarta。編譯不通過的地方直接通過 Idea 自動(dòng)導(dǎo)入的方式變更即可。

spring-web 6.0 不兼容升級(jí)

SCT 在升級(jí)過程中發(fā)現(xiàn) spring-web 包下有些 API 不兼容,例如 ClientHttpResponse.getStatusCode() 老版本返回 HttpStatus,新版本返回的是 HttpStatusCode,改動(dòng)量很小。

AutoConfiguration 自動(dòng)裝配方式變更

在 Spring Boot 3.0 以前的版本,通過在 META-INF/spring.factories 文件中定義需要自動(dòng)裝配類,Spring Boot 在啟動(dòng)過程中就會(huì)執(zhí)行裝配 Bean,如下所示:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.tencent.cloud.plugin.pushgateway.PolarisStatPushGatewayAutoConfiguration

但是在 Spring Boot 3.0 中,則是通過在

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

文件定義需要自動(dòng)裝配的類。所以遷移過程就是把org.springframework.boot.autoconfigure.EnableAutoConfiguration 下配置的類都放到新的文件中。

這里需要注意的是原來在 spring.factories 可以定義多種類型的自動(dòng)裝配例如:

  1. org.springframework.boot.autoconfigure.EnableAutoConfiguration
  2. org.springframework.cloud.bootstrap.BootstrapConfiguration
  3. org.springframework.context.ApplicationListener
  4. ... ...

只需要把 org.springframework.boot.autoconfigure.EnableAutoConfiguration 部分遷移到 org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件,其它部分還是放在 spring.factories 中無需遷移。

至此 SCT 2022 升級(jí)適配工作即已完成,可以看出升級(jí)工作量不大。

1.4 升級(jí)總結(jié)

SCT 屬于比較底層的基礎(chǔ)組件依賴的第三方庫少,所以整體適配工作量少。如果您的應(yīng)用是上層業(yè)務(wù)應(yīng)用依賴了大量的組件,例如:spring-security、spring-stream等。那升級(jí)的成本也會(huì)高很多。

下面是 github 網(wǎng)友 @herodotus-cloud 總結(jié)的升級(jí)關(guān)鍵點(diǎn):

  1. 更換 JDK 17 后,少部分第三方依賴包版本選擇和控制問題
  2. 新依賴包過時(shí)代碼替換。大多數(shù)沒問題,就怕遇到像 spring security 6 用法的變化
  3. starter 自動(dòng)配置注冊(cè)格式不同導(dǎo)致的,大多數(shù)第三方依賴都倒在這里
  4. 最怕的就是核心機(jī)制的變化,比如說反射。好像一些反射在 JDK 17 會(huì)有問題
  5. 最大的問題就是基礎(chǔ)設(shè)置組件升級(jí)不同步或者緩慢問題,比如依賴的某個(gè) SDK 沒有升級(jí) SDK 17,如果傳遞依賴了就會(huì)導(dǎo)致編譯問題。
  6. 如果還要考慮向下的兼容性,怕就難了

Spring 官方建議先升級(jí)到 Spring Boot 2.7 小版本,然后再升級(jí)到 Spring Boot 3.0 版本。通過小步升級(jí)的方式,可以更加的平滑。

二、嘗鮮使用 Spring Cloud Tencent 2022.0 版本

Spring Cloud Tencent 1.8.1-2022.0.0 版本已發(fā)布。通過引入 SCT BOM 的方式即可引入,如下所示:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tencent.cloudgroupId>
<artifactId>spring-cloud-tencent-dependenciesartifactId>
<version>1.8.1-2022.0.0-RC2version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>

在此解釋一下 SCT 的版本號(hào)規(guī)則,版本號(hào)分為兩段:

{對(duì)應(yīng)的 Spring Cloud 版本}

SCT 版本號(hào)在各個(gè) Spring Cloud 版本之間對(duì)齊,例如 1.8.1-Hoxton.SR12 和 1.8.1-2021.0.3 ,SCT 版本號(hào)都是 1.8.1,功能完全對(duì)齊,只是引用的 Spring Cloud 不同。版本號(hào)中引入 Spring Cloud 版本為了一眼就能識(shí)別 Spring Cloud 版本對(duì)應(yīng)關(guān)系。開發(fā)者優(yōu)先選擇跟自己版本一致的 Spring Cloud 版本,再選擇最新的 SCT 版本。

使用 SCT 各個(gè)子模塊的功能,請(qǐng)參考 SCT Github Wiki 文檔。

三、 呼吁

第三方基礎(chǔ)組件的升級(jí)節(jié)奏會(huì)直接影響上層應(yīng)用的升級(jí),在此也呼吁第三方基礎(chǔ)組件的維護(hù)者能夠盡快跟進(jìn)適配。為廣大愿意嘗鮮的開發(fā)者和企業(yè)提供便利。

四、歡迎共建

如果您對(duì)微服務(wù)、Spring Cloud 技術(shù)感興趣,歡迎加入我們。您的一個(gè)建議、Issue、Pull Request 甚至只是一個(gè)小小的 Star 都是對(duì) Spring Cloud Tencent 社區(qū)極大的支持。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2992

    瀏覽量

    114765
  • Oracle
    +關(guān)注

    關(guān)注

    2

    文章

    301

    瀏覽量

    36794
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    15572

原文標(biāo)題:緊跟Spring Boot 3生態(tài),Spring Cloud Tencent發(fā)布最新匹配版本!

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    開源鴻蒙6.0 Release版本重磅發(fā)布

    近日,在長沙國際會(huì)議中心舉辦的開源鴻蒙技術(shù)大會(huì)2025上,開放原子開源鴻蒙(即OpenAtom OpenHarmony,簡稱“開源鴻蒙”)項(xiàng)目群正式發(fā)布開源鴻蒙6.0 Release版本。
    的頭像 發(fā)表于 10-10 16:49 ?1490次閱讀

    使用studio,最高版本的系統(tǒng)是4.0.3,用到LVGL,但是可選的版本是9.1的,不匹配怎么解決?

    使用studio搭建的系統(tǒng),選的是4.0.3版本,需要用到LVGL,但是版本沒的選,只有9.1最高的版本,系統(tǒng)不匹配怎么辦?
    發(fā)表于 09-29 09:56

    AppGallery Connect(HarmonyOS 5及以上) --公開測試創(chuàng)建并發(fā)布測試版本(一)

    版本號(hào)規(guī)范 測試版本的VersionCode必須高于發(fā)布過的全網(wǎng)版本的VersionCode。 測試版本的VersionCode不能低于
    發(fā)表于 09-26 17:24

    創(chuàng)建并發(fā)布測試版本(二)

    擇到。 7.配置是否向測試用戶展示當(dāng)前最新在架版本的應(yīng)用截圖。 8.配置測試發(fā)布。 9.點(diǎn)擊頁面右上角“提交”,將測試版本提交審核。提交成功后,可在“版本列表”頁面查看
    發(fā)表于 09-17 15:00

    創(chuàng)建并發(fā)布測試版本(一)

    版本號(hào)規(guī)范 測試版本的VersionGode必須高于發(fā)布過的全網(wǎng)版本的VersionGode。 測試版本的VersionCode不能低于
    發(fā)表于 09-16 15:21

    如何使用nRF Cloud

    Nordic Semiconductor云服務(wù)和nRF Cloud構(gòu)成了一個(gè)專為Nordic Semiconductor無線設(shè)備優(yōu)化的物聯(lián)網(wǎng)平臺(tái)。該平臺(tái)為使用Nordic Semiconductor
    的頭像 發(fā)表于 07-04 11:12 ?427次閱讀
    如何使用nRF <b class='flag-5'>Cloud</b>

    NVIDIA推出AI平臺(tái)DGX Cloud Lepton

    CoreWeave、Crusoe、Firmus、Foxconn、GMI Cloud、Lambda、Nebius、Nscale、SoftBank Corp. 和 Yotta Data Services 為 DGX Cloud Lepton Marketplace 提供數(shù)以萬
    的頭像 發(fā)表于 05-22 09:42 ?573次閱讀

    nRF Cloud Wi-Fi 定位服務(wù)

    nRF Cloud 提供的定位服務(wù)專為 Nordic 硅芯片量身定制,具有快速、省電的定位功能。它們可以幫助需要定位數(shù)據(jù)而又不需要高功耗的設(shè)備和應(yīng)用。提供多種定位技術(shù),包括 Assisted-GPS
    發(fā)表于 04-17 15:07

    燧原科技正式納入飛槳例行版本發(fā)布體系

    燧原科技與飛槳經(jīng)過長時(shí)間的適配合作和持續(xù)集成(CI)建設(shè),對(duì)飛槳合?的每?行代碼都在燧原硬件上進(jìn)?了驗(yàn)證。如今,燧原正式納入飛槳例行版本發(fā)布體系。未來,燧原將基于這?合作模式,共同?持飛槳重大版本
    的頭像 發(fā)表于 04-11 11:31 ?676次閱讀
    燧原科技正式納入飛槳例行<b class='flag-5'>版本</b><b class='flag-5'>發(fā)布</b>體系

    GPU-Z迎來2.62 版本的更新發(fā)布

    近日,GPU-Z 迎來了 2.62 版本的更新發(fā)布。此次更新,主要是為了適配英偉達(dá)最新推出的 RTX 50 系列顯卡,為用戶提供更全面、準(zhǔn)確的硬件信息。 在新發(fā)布的 2.62 版本中,
    的頭像 發(fā)表于 02-05 15:33 ?985次閱讀

    重磅發(fā)布 | 信息發(fā)布系統(tǒng)iOS版本正式上線!

    信息發(fā)布系統(tǒng)是一款集成了多種功能的強(qiáng)大工具,旨在幫助用戶高效地管理和發(fā)布信息。無論是企業(yè)公告、校園通知,還是社區(qū)消息,我們都能為您提供便捷的解決方案。ETV信息發(fā)布系統(tǒng)/多應(yīng)用展示1ios版本
    的頭像 發(fā)表于 01-14 18:19 ?1127次閱讀
    重磅<b class='flag-5'>發(fā)布</b> | 信息<b class='flag-5'>發(fā)布</b>系統(tǒng)iOS<b class='flag-5'>版本</b>正式上線!

    Google Cloud發(fā)布兩款針對(duì)企業(yè)客戶的全新解決方案

    Google Cloud 近期發(fā)布兩款專為企業(yè)客戶設(shè)計(jì)的全新解決方案——Google Agentspace與NotebookLM Plus,目的是通過 Gemini 先進(jìn)的推理能力、Google 高質(zhì)量的搜索功能,以及無論存儲(chǔ)在何處的企業(yè)數(shù)據(jù),將企業(yè)的專業(yè)知識(shí)提供給所有員
    的頭像 發(fā)表于 12-27 16:31 ?1026次閱讀

    FreeCad 1.0 版本正式發(fā)布

    ,F(xiàn)reeCAD 終于在 2024 年 11 月 20 日正式發(fā)布了 1.0 版本。 ? ” 先來段小視頻,看看 FreeCAD 可以干什么: 以下內(nèi)容部分引用自: https
    的頭像 發(fā)表于 12-03 01:02 ?3203次閱讀
    FreeCad 1.0 <b class='flag-5'>版本</b>正式<b class='flag-5'>發(fā)布</b>

    手寫圖像模板匹配算法在OpenCV中的實(shí)現(xiàn)

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個(gè)主要的原因是查找最大閾值,只能匹配一個(gè),自己比對(duì)閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板
    的頭像 發(fā)表于 11-11 10:12 ?977次閱讀
    手寫圖像模板<b class='flag-5'>匹配</b>算法在OpenCV中的實(shí)現(xiàn)

    Spring事務(wù)實(shí)現(xiàn)原理

    作者:京東零售 范錫軍 1、引言 springspring-tx模塊提供了對(duì)事務(wù)管理支持,使用spring事務(wù)可以讓我們從復(fù)雜的事務(wù)處理中得到解脫,無需要去處理獲得連接、關(guān)閉連接、事務(wù)提交和回滾等
    的頭像 發(fā)表于 11-08 10:10 ?1335次閱讀
    <b class='flag-5'>Spring</b>事務(wù)實(shí)現(xiàn)原理