學無止境?本文已被 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詳情,三個分支都有如下三方面的改進:
- ? 修復bug
- ? 文件同步
- ? 升級依賴
? 修復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個新特性,瞭解一下:
- 改進 Kubernates Liveness/Readiness 健康指標和探針配置
- 新增執行映象選項用於Docker映象構建
- 增加對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官方是認真的,但你能認真起來嗎?歪果仁,這是週末唉,你們不用休息的嗎?疫情期間在家辦公就這麼任性?