以下是 Spring(以 Spring Boot 为核心)与 JDK、Maven、MyBatis-Plus、Tomcat 的版本对应关系及关键注意事项,基于最新技术生态整理:
一、Spring Boot 与 JDK 版本对应
-
Spring Boot 2.x 系列
- 最低要求:JDK 1.8
- 推荐版本:JDK 8/11(官方支持至 2025 年)
- 注意:Spring Boot 2.7.x 是 2.x 的最终版本,建议新项目直接升级至 3.x
-
Spring Boot 3.x 系列
- 最低要求:JDK 17
- 推荐版本:JDK 17/21(支持 Java 17+ 新特性,如虚拟线程)
- 兼容性:Spring Boot 3.0+ 不再支持 JDK 8,需注意旧项目升级时的适配
二、Spring Boot 与 MyBatis-Plus 版本对应
-
Spring Boot 2.x + MyBatis-Plus
-
推荐组合:Spring Boot 2.7.x + MyBatis-Plus 3.4.x
-
依赖示例 :
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency>
-
注意 :避免混用 MyBatis 3.4.x 以下版本,可能导致
sqlSessionFactory
配置错误
-
-
Spring Boot 3.x + MyBatis-Plus
-
强制要求:MyBatis-Plus 3.5.x+(最低 3.5.3.1)
-
依赖示例 :
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.5</version> </dependency>
-
优化点:支持 Java 17 特性(如 Record 类)和 Spring Boot 3.x 的模块化配置
-
三、Maven 配置与 Spring Boot
- Maven 版本兼容性
-
推荐版本:Maven 3.6.3+(支持 Spring Boot 3.x 的依赖解析)
-
关键配置 :在
pom.xml
中继承 Spring Boot 父工程以简化版本管理:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> </parent>
-
依赖冲突处理 :使用
mvn dependency:tree
检查冲突,优先通过<exclusions>
排除旧版本依赖
-
四、内嵌 Tomcat 版本对应
- Spring Boot 默认内嵌 Tomcat 版本
-
Spring Boot 2.7.x:Tomcat 9.0.x
-
Spring Boot 3.0.x+:Tomcat 10.1.x(支持 Servlet 5.0+)
-
手动指定版本 (非必要不推荐):
<properties> <tomcat.version>10.1.18</tomcat.version> </properties>
-
注意 :Tomcat 10+ 的包路径从
javax
改为jakarta
,需确保依赖库兼容(如 MyBatis-Plus 3.5.5+)
-
五、综合版本选择策略
-
新项目推荐组合
- 技术栈:Spring Boot 3.2.x + JDK 17 + MyBatis-Plus 3.5.5 + Tomcat 10.1.x
- 优势:支持最新 Java 特性、性能优化及长期维护
-
旧项目升级路径
- 步骤 :
- 升级 JDK 至 17(Spring Boot 3.x 强制要求)
- 升级 Spring Boot 至 3.x,同步调整 MyBatis-Plus 至 3.5.x
- 验证 Tomcat 兼容性,更新
javax
到jakarta
命名空间
- 步骤 :
六、常见问题与解决方案
-
JDK 版本不兼容报错
- 示例 :
UnsupportedClassVersionError
- 解决 :检查 Maven 编译配置,确保
<maven.compiler.source>
与 JDK 版本一致
- 示例 :
-
MyBatis-Plus 启动失败
- 典型错误 :
Property 'sqlSessionFactory' not found
- 原因:MyBatis-Plus 版本与 Spring Boot 不兼容
- 解决:升级至兼容版本(参考第二节)并清理 Maven 本地仓库缓存
- 典型错误 :
-
Tomcat 10+ 的 Servlet API 变更
- 错误 :
javax.servlet
类找不到 - 解决 :替换依赖为 Jakarta EE 版本(如
jakarta.servlet:jakarta.servlet-api:5.0.0
)
- 错误 :
如需具体版本号或更详细配置,可参考 Spring Initializr 或各组件官方文档。