Spring Boot 项目与JDK、Mybatis版本兼容对应关系表及问题记录

 更新时间:2025年07月21日 11:49:37   作者:Star Treks  
本文总结SpringBoot与JDK、MyBatis、SpringCloud及SpringCloudAlibaba的版本兼容性,提供对应关系表和注意事项,建议使用SpringBoot的依赖管理,匹配官方推荐版本,避免冲突,确保稳定性,感兴趣的朋友跟随小编一起看看吧

之前项目开发中遇到了版本不兼容的问题,这里记录主要为了方面后面查找对应,若遇到新的会继续更新。。。

一、Spring Boot 与 JDK 版本对应

Spring Boot 的不同版本对JDK有特定的支持范围。选择合适的JDK版本可以确保框架的稳定性和功能完整性。

Spring Boot 版本支持的最低 JDK 版本支持的最高 JDK 版本
2.6.x817
2.7.x817
3.0.x1720
3.1.x1721
3.2.x1721

说明:

  • Spring Boot 2.6.x:适用于JDK 8到17,适合需要使用较早Spring Boot版本的项目。
  • Spring Boot 2.7.x:适用于JDK 8到17,适合现有项目逐步迁移。
  • Spring Boot 3.x:全面支持JDK 17及以上版本,利用最新的Java特性和性能优化。

推荐做法: 使用与Spring Boot版本兼容的最新稳定JDK版本,以获得最佳性能和安全性。

二、Spring Boot 与 MyBatis 版本兼容性

MyBatis 是常用的持久层框架,与Spring Boot的集成需要注意版本匹配,以避免兼容性问题。

Spring Boot 版本MyBatis 版本 mybatis-spring-boot-starter 版本
2.6.x3.4.x - 3.5.x2.1.x - 2.2.x
2.7.x3.5.x 2.2.x
3.0.x3.5.x - 3.6.x3.0.x
3.1.x3.5.x - 3.6.x3.0.x
3.2.x3.5.x - 3.6.x3.0.x

说明:

  • Spring Boot 2.6.x:推荐使用 mybatis-spring-boot-starter 2.1.x 至 2.2.x 版本,与 MyBatis 3.4.x 至 3.5.x 兼容。
  • Spring Boot 2.7.x:推荐使用 mybatis-spring-boot-starter 2.2.x 版本,与 MyBatis 3.5.x 兼容。
  • Spring Boot 3.x:推荐使用 mybatis-spring-boot-starter 3.0.x 版本,支持 MyBatis 3.5.x 至 3.6.x。

注意事项:

  • 依赖管理:尽量使用Spring Boot的依赖管理(BOM)来自动处理版本,减少手动指定版本的错误。
  • 升级指南:在升级Spring Boot或MyBatis时,参考官方迁移指南,确保版本兼容。

三、Spring Boot 与 Spring Cloud 版本兼容性

Spring Cloud 提供了一系列分布式系统工具,与Spring Boot紧密集成。不同版本的Spring Cloud对应不同版本的Spring Boot。

Spring Boot 版本Spring Cloud 版本 备注
2.6.x2021.x (Jubilee)适用于Spring Boot 2.6.x项目
2.7.x2021.x (Jubilee) 适用于Spring Boot 2.7.x项目
3.0.x2022.x (Kilburn)支持Spring Boot 3.x及其新特性
3.1.x2022.x (Kilburn)持续支持与3.0.x相同的兼容性
3.2.x2022.x (Kilburn)未来版本可能更新,需关注官方发布信息

说明:

  • Spring Cloud 2021.x (Jubilee):适用于Spring Boot 2.6.x 和 2.7.x,提供成熟稳定的分布式工具。
  • Spring Cloud 2022.x (Kilburn):支持Spring Boot 3.x,利用其新的架构和特性。

推荐做法: 根据Spring Boot版本选择对应的Spring Cloud版本,确保两者之间的兼容性。

四、Spring Boot 与 Spring Cloud Alibaba 版本兼容性

Spring Cloud Alibaba 是基于Spring Cloud的Alibaba生态系统集成,适用于构建微服务架构。

Spring Boot 版本Spring Cloud 版本 备注
2.6.x2021.x (China)适用于Spring Cloud Jubilee和Spring Boot 2.6.x
2.7.x2021.x (China)适用于Spring Cloud Jubilee和Spring Boot 2.7.x
3.0.x2022.x (China)支持Spring Cloud Kilburn和Spring Boot 3.x
3.1.x2022.x (China)持续支持与3.0.x相同的兼容性
3.2.x2022.x (China)未来版本可能更新,需关注官方发布信息

说明:

  • Spring Cloud Alibaba 2021.x (China):与Spring Boot 2.6.x、2.7.x 和 Spring Cloud Jubilee 兼容。
  • Spring Cloud Alibaba 2022.x (China):支持Spring Boot 3.x 和 Spring Cloud Kilburn,适应新架构需求。

注意事项:

依赖冲突:确保Spring Cloud Alibaba的版本与Spring Cloud及Spring Boot版本一致,避免依赖冲突。
功能支持:不同版本的Spring Cloud Alibaba可能支持不同的功能模块,选择时需确认项目需求。

常见版本冲突及解决方案


在整合多种依赖时,版本冲突是常见的问题。以下列举了一些常见的版本冲突及其解决方案:

1. Spring Boot 与 MyBatis 版本不兼容


症状: 应用启动时报错,提示找不到某些MyBatis类或方法。

解决方案:

  • 检查 mybatis-spring-boot-starter 的版本是否与Spring Boot兼容。
  • 参考上述兼容性表,调整版本至匹配范围。
  • 使用Spring Boot的依赖管理来自动处理版本。

2. Spring Cloud 版本与 Spring Boot 不匹配


症状: 启动时报错,提示Spring Cloud与Spring Boot版本不兼容。

解决方案:

  • 确认Spring Cloud版本对应的Spring Boot版本。
  • 更新Spring Cloud或Spring Boot至兼容版本。
  • 避免手动指定Spring Cloud的版本,使用官方推荐的版本管理。

3. 依赖冲突导致的类加载错误

症状: ClassNotFoundException 或 NoSuchMethodError 异常。

解决方案:

  • 使用 mvn dependency:tree(Maven)./gradlew dependencies(Gradle) 查看依赖树,查找冲突依赖。
  • 使用排除(exclusions)策略排除冲突的依赖版本。
  • 确保所有子依赖的版本与主依赖版本一致。

4. JDK 版本不兼容

症状: 编译或运行时报错,提示不支持的JDK版本或特性。

解决方案:

  • 检查Spring Boot版本对应的JDK支持范围。
  • 升级或降级JDK版本以符合Spring Boot的要求。
  • 确保开发环境和生产环境的JDK版本一致。

到此这篇关于Spring Boot 项目 与JDK、Mybatis版本兼容对应关系表的文章就介绍到这了,更多相关springboot与jdk mybatis对应关系表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mvn compile报错“程序包com.XXX不存在”

    mvn compile报错“程序包com.XXX不存在”

    本文主要介绍了mvn compile报错“程序包com.XXX不存在”,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Java中的Spring循环依赖详情

    Java中的Spring循环依赖详情

    这篇文章主要介绍了Java中的Spring循环依赖详情,文章基于Java的相关资料展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • SpringBoot集成Druid连接池进行SQL监控的问题解析

    SpringBoot集成Druid连接池进行SQL监控的问题解析

    这篇文章主要介绍了SpringBoot集成Druid连接池进行SQL监控的问题解析,在SpringBoot工程中引入Druid连接池非常简单,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • Java中的三元运算(三目运算)以后用得到!

    Java中的三元运算(三目运算)以后用得到!

    Java提供了一个三元运算符,可以同时操作3个表达式,下面这篇文章主要给大家介绍了关于Java中三元运算(三目运算)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Spring框架+jdbcTemplate实现增删改查功能

    Spring框架+jdbcTemplate实现增删改查功能

    这篇文章主要介绍了Spring框架+jdbcTemplate实现增删改查功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • java多线程编程之java线程简介

    java多线程编程之java线程简介

    线程是程序运行的基本执行单元,线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间也叫做线程栈
    2014-01-01
  • Spring @Environment典型用法实战案例

    Spring @Environment典型用法实战案例

    在使用Spring框架进行Java开发时,我们经常使用@Value和@Environment注解来注入配置文件中的值,这篇文章主要介绍了Spring @Environment典型用法的相关资料,需要的朋友可以参考下
    2025-06-06
  • 简单了解java ORM框架JOOQ

    简单了解java ORM框架JOOQ

    这篇文章主要介绍了简单了解java ORM框架JOOQ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java中基于Nacos实现Sentinel规则持久化详解

    Java中基于Nacos实现Sentinel规则持久化详解

    这篇文章主要介绍了Java中基于Nacos实现Sentinel规则持久化详解,Sentinel Dashboard中添加的规则数据存储在内存,微服务停掉规则数据就消失,在⽣产环境下不合适,我们可以将Sentinel规则数据持久化到Nacos配置中⼼,让微服务从Nacos获取规则数据,需要的朋友可以参考下
    2023-09-09
  • IDEA中设置代码自动提示为Alt+/的具体做法

    IDEA中设置代码自动提示为Alt+/的具体做法

    很多公司都强制性要求使用Intellij IDEA,其实Intellij IDEA也确实很好用,但是一下子从Eclipse跳转到Intellij IDEA转也是需要一段时间的,为了迎合之前的习惯,就需要在Intellij IDEA中改变一些设置,如代码自动生成,本文给大家分享设置方法,感兴趣的朋友一起看看吧
    2023-01-01

最新评论