学无止境?本文已被 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对它的这三条线做了更新:
此次发版,距离上次 正式 发版(不区分分支)已足足有 44天 之久。
参考github上的Release详情,三个分支 都 有如下三方面的改进:
小版本号的升级,最重要的使命就是 修复bug ,这是它存在的意义。针对这三个版本,各自的bug修复总数如下:
能发现规律吧, 版本越新,bug越多 ,这是符合常理的。另外,从小版本号里能知道:2.1.x版本都修复16次bug了,而2.3.x才第2次修复,正处于bug井喷阶段呢。所以一味的追新的话,还需谨慎哈。
也许你会吐槽,Spring Boot这啥编码水平,咋这么多bug?其实非也,个数虽多(其实也还好),但每一个都是 非严重bug ,影响甚微,无需大惊小怪。
另外,从bug的原因上来看,不少bug是各个版本都有的共性问题。比如2.1.x版本那个唯一的bug,其它两个版本均有:
此part用于对文档上的改变做出一些说明,比如文字描述错误、排班不正确等等。举例本次的一个修复:
修复前:
修复后:
不得不说,这老外还挺较真(挺仔细)的。
由于是小版本的升级,因此对应的依赖也是小版本升级。举例:
值得注意的是,拿 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个新特性,了解一下:
小贴士:小版本号的升级是可以新增这种很小的功能点的,但不允许新增大功能
Spring Boot目前活跃的分支有3个,也就是这三个 主线版本 。那么他们三在核心依赖上有啥区别呢?A哥特意翻资料帮你整理了一下,绘制如下表:
说明:因为表格兼容性不太好,所以我以图片方式展示
这两个分支已经是古董分支了:
stale中文意思:不新鲜的,老掉牙的,没有新意的
它们 早已 寿终正寝,最后一个版本和发布时间为:
有意思的是, 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官方是认真的,但你能认真起来吗?歪果仁,这是周末唉,你们不用休息的吗?疫情期间在家办公就这么任性?