一、为什么要关注 springboot 的版本?
最开始做项目时候,组长说创建一个 springboot 2.5.4 的项目,mysql使用 5.6.X ,maven使用是3.6.X。其实最开始我也没有多想,直接照做了,但是后面回想自己平时看到的SpringBoot开源代码,有的是使用的是2.5.X,有的是使用2.6.X,还有的是使用2.7.X版本的,除了3以上版本在实际开发中没有见过,目前2版本的见到的太多版本号不一样的了。难道只要是2版本,都可以随意使用?当然我们知道不同的版本肯定是有差异的,每个版本都存在一些bug,后面的版本会对前一个版本进行修护和升级,也有一些方法,规则的调整。
所以说,如果要是一个人开发,只要你不用到每个框架版本的新特性,使用一些常规的操作,其实也不用太关注版本,但是实际情况是,往往后端不是你一个人在开发,要是每个人版本都不一样,万一出现了什么bug,排查起来也会比统一版本的情况下排查减少很多不必要的麻烦。所以开发中项目指定版本这里存在两个目的,一个是:统一版本,方便管理(跟每家公司有自己的代码规约一样,遵守就行了),第二个目的,降低风险,不使用版本太高的框架,且往往使用常用的框架版本进行开发,开发环境也比较熟悉。当然最后还有一个,多看看官网,多了解一些框架的不同版本特性,也有助于自己开发(这也是我记录这篇博客的缘由)。
Spring Boot Reference Documentation 2.5.4
二、Spring Boot 的版本号
Spring Boot 作为后端开发常用的一个约定大于配置框架,目前最新稳定版是2.7.X版本,也就是我们平时说的SpringBoot2,最新的快照版本是3.X.X。Spring Boot 的版本号由 3 位组成,如图所示:
关于版本号有如下版本区分:
主版本:有可能进行大的架构调整,各大版本之间并不一定兼容
次版本:在主版本架构不变的前提下,增加了一些新的特性或变化
增量版本:bug 修复细节的完善,用来描增量版本的不一定是数字,如:2.0.0-SNAPSHOT
发布状态
GA:General Availability,正式发布的版本,官方推荐使用该版本,国外很多项目都是使用GA来表示正式发布版本的
PRE:预览版,主要是用来内部开发人员和测试人员测试使用(不建议使用)
SNAPSHOT:快照版,可以稳定使用,且该版本会一直进行小量的优化和改进 (不建议使用)
RC:Release,该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几
三、查看Spring Boot各版本的变化
Spring Boot Older Release Notes · spring-projects/spring-boot Wiki (github.com)
四、springboot 各个版本的区别(2.X和3.X)
维护情况(大多数目前已经不支持维护了,但是平常开发即使不维护了,也能使用)
除去一些小改动,比较大的改动就是3版本不支持jdk 8了,具体细节太多了,看github文档。