搞事情?Spring Boot今天一口氣釋出三個版本

YourBatman發表於2020-07-27

學無止境?本文已被 https://www.yourbatman.cn 收錄,裡面一併有Spring技術棧、MyBatis、JVM、中介軟體等小而美的專欄供以免費學習。關注公眾號【BAT的烏托邦】逐個擊破,深入掌握,拒絕淺嘗輒止。

前言

各位好,我是A哥(YourBatman)。今天是2020-07-25,上午我正從https://start.spring.io準備down一個工程下來的時候,開啟頁面發現預設選中的Spring Boot版本號是2.3.2

並非我刻意的去找到這個變化,而是由於我昨天 down下來的工程使用的Spring Boot版本是2.3.1,印象還在,所以今天一下子就發現了差異。

既然升級了(雖然是小版本號),那就去官方樓一眼唄。不看不知道,一看還真讓發現些內容:Spring Boot在同一天(2020-07-25)一口氣釋出了三個版本,這是要搞事情啊?

小貼士:本文所有時間若未做特殊說明,指的均是北京時間

正文

Spring Boot目前還處於Active活躍的分支共有三個:

因此就在今天,同一天裡Spring Boot對它的這三條線做了更新:

  • Spring Boot 2.3.1 -> Spring Boot 2.3.2
  • Spring Boot 2.2.8 -> Spring Boot 2.2.9
  • Spring Boot 2.1.15 -> Spring Boot 2.1.16


此次發版,距離上次正式發版(不區分分支)已足足有44天之久。

有哪些升級?

參考github上的Release詳情,三個分支有如下三方面的改進:

  1. ? 修復bug
  2. ? 文件同步
  3. ? 升級依賴

? 修復bug

小版本號的升級,最重要的使命就是修復bug,這是它存在的意義。針對這三個版本,各自的bug修復總數如下:

  • 2.3.2:34個。遙遙領先
  • 2.2.9:10個。
  • 2.1.16:1個。

能發現規律吧,版本越新,bug越多,這是符合常理的。另外,從小版本號裡能知道:2.1.x版本都修復16次bug了,而2.3.x才第2次修復,正處於bug井噴階段呢。所以一味的追新的話,還需謹慎哈。

也許你會吐槽,Spring Boot這啥編碼水平,咋這麼多bug?其實非也,個數雖多(其實也還好),但每一個都是非嚴重bug,影響甚微,無需大驚小怪。

另外,從bug的原因上來看,不少bug是各個版本都有的共性問題。比如2.1.x版本那個唯一的bug,其它兩個版本均有:

? 文件同步

此part用於對文件上的改變做出一些說明,比如文字描述錯誤、排版不正確等等。舉例本次的一個修復:

修復前:

修復後:

不得不說,這老外還挺較真(挺仔細)的。

? 升級依賴

由於是小版本的升級,因此對應的依賴也是小版本升級。舉例:

  • Tomcat升級到9.0.37
  • Spring Framework升級到5.2.8(此版本4天前釋出)

值得注意的是,拿Spring Framework的升級舉例:Spring Boot的2.2.x和2.3.x都是升級到了5.2.8版本,而Spring Boot的2.1.x分支依賴的是Spring Framework 5.1.17版本哦。


除此之外,Spring Boot它的最新版本,也就是2.3.2裡還新增了3個新特性,瞭解一下:

  1. 改進 Kubernates Liveness/Readiness 健康指標和探針配置
  2. 新增執行映象選項用於Docker映象構建
  3. 增加對reactive Elasticsearch的健康檢查

小貼士:小版本號的升級是可以新增這種很小的功能點的,但不允許新增大功能

三個版本核心依賴的區別

Spring Boot目前活躍的分支有3個,也就是這三個主線版本。那麼他們三在核心依賴上有啥區別呢?A哥特意翻資料幫你整理了一下,繪製如下表:

說明:因為表格相容性不太好,所以我以圖片方式展示

關於1.5.x和2.0.x版本

這兩個分支已經是古董分支了:

stale中文意思:不新鮮的,老掉牙的,沒有新意的

它們早已壽終正寢,最後一個版本和釋出時間為:

  • 1.5.22.RELEASE,2019.08
  • 2.0.9.RELEASE,2019.04

有意思的是,2.0.x版本的生命週期非常的短暫,幾乎剛好一年(2018.3 - 2019.4)。但是不可否認2.0.x版本是具有劃時代意義的,在1.5.x的基礎上垮了一大步,上了一個大臺階。

所以如果你的專案還在使用這兩個版本,特別是1.5.x,那麼儘快升級吧。官方推薦的是使用最新的2.3.x分支,這也是當前最為活躍的分支。

小貼士:1.5.x升級到2.x.x屬於阻斷式升級,需要十分謹慎

總結

Spring Boot作為微服務、雲原生開發的基礎設施,每個Java開發者都應該理解它、跟上它、學習它,才得以保證自己不掉隊,不被後浪拍死。

但是,如此之快的更新速度,Spring官方是認真的,但你能認真起來嗎?歪果仁,這是週末唉,你們不用休息的嗎?疫情期間在家辦公就這麼任性?

相關推薦:

相關文章