问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Spring Boot版本和JDK版本的依赖关系

创作时间:
作者:
@小白创作中心

Spring Boot版本和JDK版本的依赖关系

引用
1
来源
1.
https://www.cnblogs.com/hibpm/p/18297051

在Java开发中,Spring Boot和JDK版本的兼容性问题经常困扰着开发者。本文将详细介绍Spring Boot版本与JDK版本的对应关系,并分析Spring Boot 2和Spring Boot 3的主要区别,帮助开发者更好地理解和使用这两个版本。

通过Maven构建Java项目或者使用源代码进行Java编译时,常常遇到JDK版本和Spring Boot版本不匹配的问题,导致编译失败,比如出现如下错误:

org/springframework/beans/factory/InitializingBean.class
[ERROR] 类文件具有错误的版本 61.0, 应为 55.0
[ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。
/org/springframework/boot/autoconfigure/AutoConfigureAfter.class
[ERROR] 类文件具有错误的版本 61.0, 应为 55.0
[ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。

这类错误的原因是:你本地的JDK版本低,而代码里依赖的Spring Boot版本高导致的错误,解决这个问题要么提升JDK版本,要么降低Spring Boot版本。那么如何查看Spring Boot版本与JDK版本的对应关系呢?

一、如何查看Spring Boot依赖的JDK版本

  1. 打开Spring官方网站
    进入Spring官方网站https://spring.io/,点击菜单Projects\Spring Boot,然后点击LEARN页签,查看主流的Spring Boot版本。

版本标识的意义
CURRENT:代表了当前版本,最新发布版本,里程碑版本。
GA:通用正式发布版本,同release。
SNAPSHOT:快照版本,可用但非稳定版本。
PRE:预览版本。
M版本:M1,M2,M3中的M是milestone的简写,这个单词是里程碑的意思。
Alpha:也被称为内部测试版或预览版,这些版本通常不会对外部用户公开,因为它们可能包含许多尚未修复的漏洞和不完整的功能。通常只有开发团队和其他内部相关人士才能访问和使用 Alpha 版本。
Beta:是一种公开测试版,位于 Alpha 版本之后。这个阶段的版本通常会加入新功能,并且相较于 Alpha 版本来说会更加稳定。Beta 版本主要面向特定的用户群体进行测试,如合作伙伴、潜在客户或早期采用者。

  1. 查看Reference Doc.
    比如我们想查看Spring Boot 3.0.13版本,点击Reference Doc.进入参考详情页面。
  2. 点击左侧的Getting Started菜单
  3. 接着点击左侧的2. System Requirements菜单

可以看到Spring Boot版本对Java JDK版本的要求说明:
Spring Boot 3.0.13 requires Java 17 and is compatible up to and including Java 21. Spring Framework 6.0.14 or above is also required.
Spring Boot 3.0.13需要Java 17,并且兼容Java 21(包括Java 21)。还需要Spring Framework 6.0.14或更高版本。

二、主流的Spring Boot和JDK版本的对应关系

序号
Spring Boot 版本
JDK版本
Spring Framework 版本
1
Spring Boot 2.7.18
Java JDK 8版本—21版本
Spring Framework 5.3.31+
2
Spring Boot 3.0.13
Java JDK 17版本-21版本
Spring Framework 6.0.14+
3
Spring Boot 3.1.8
Java JDK 17版本-21版本
Spring Framework 6.0.16+
4
Spring Boot 3.2.2
Java JDK 17版本-21版本
Spring Framework 6.0.13+
5
Spring Boot 3.3.0-M1
Java JDK 17版本-21版本
Spring Framework 6.0.13+

可以看到,Spring Boot 3以上版本至少得依赖JDK 17版本,如果项目中要求使用JDK 8版本,那么只能使用Spring Boot 2版本了。

Spring Boot 2和Spring Boot 3有什么区别

1. 最低环境的区别

Java版本:Spring Boot 2的最低版本要求为Java 8,支持Java 9;而Spring Boot 3决定使用Java 17作为最低版本,并支持Java 19。

Spring Framework 版本: Spring Boot 2基于Spring Framework 5开发;而Spring Boot 3构建基于Spring Framework 6之上。

2. GraalVM支持的区别

相比Spring Boot 2,Spring Boot 3的Spring Native也是升级的一个重大特性,支持使用GraalVM将Spring的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。

3. 图片Banner支持的区别

在Spring Boot 2中,自定义Banner支持图片类型;而现在Spring Boot 3自定义Banner只支持文本类型(banner.txt),不再支持图片类型。

4. 依赖项的区别

相比Spring Boot 2,Spring Boot 3.0.0-M1删除了对一些附加依赖项的支持,包括Apache ActiveMQ、Atomikos、EhCache2和HazelCast3。Jersey是另一个值得注意的弃用,在它提供对Spring Framework 6的支持之前已被删除。

除了上述内容外,相比Spring Boot 2,Spring Boot 3还增加了很多其它的新特性,如:Java EE已经变更为Jakarta EE、Log4j2增强、三方包升级等。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号