之前项目开发中遇到了版本不兼容的问题,这里记录主要为了方面后面查找对应,若遇到新的会继续更新。。。
一、spring boot 与 jdk 版本对应
spring boot 的不同版本对jdk有特定的支持范围。选择合适的jdk版本可以确保框架的稳定性和功能完整性。
spring boot 版本 | 支持的最低 jdk 版本 | 支持的最高 jdk 版本 |
---|---|---|
2.6.x | 8 | 17 |
2.7.x | 8 | 17 |
3.0.x | 17 | 20 |
3.1.x | 17 | 21 |
3.2.x | 17 | 21 |
说明:
- 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.x | 3.4.x - 3.5.x | 2.1.x - 2.2.x |
2.7.x | 3.5.x | 2.2.x |
3.0.x | 3.5.x - 3.6.x | 3.0.x |
3.1.x | 3.5.x - 3.6.x | 3.0.x |
3.2.x | 3.5.x - 3.6.x | 3.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.x | 2021.x (jubilee) | 适用于spring boot 2.6.x项目 |
2.7.x | 2021.x (jubilee) | 适用于spring boot 2.7.x项目 |
3.0.x | 2022.x (kilburn) | 支持spring boot 3.x及其新特性 |
3.1.x | 2022.x (kilburn) | 持续支持与3.0.x相同的兼容性 |
3.2.x | 2022.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.x | 2021.x (china) | 适用于spring cloud jubilee和spring boot 2.6.x |
2.7.x | 2021.x (china) | 适用于spring cloud jubilee和spring boot 2.7.x |
3.0.x | 2022.x (china) | 支持spring cloud kilburn和spring boot 3.x |
3.1.x | 2022.x (china) | 持续支持与3.0.x相同的兼容性 |
3.2.x | 2022.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对应关系表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论