Spring Boot 2.7.5+Spring Framework 6.0.10升级遇NoSuchFieldError求助
解决方案
核心问题
Spring Boot 2.7.5 与 Spring Framework 6.0.10 版本不兼容。Spring Boot 2.x 系列依赖的是 Spring Framework 5.3.x,强行升级到 6.x 会导致 API 不匹配,触发 NoSuchFieldError 这类兼容性错误。
可行方案
方案一:升级到 Spring Boot 3.x(推荐,适配 JDK 17)
Spring Boot 3.x 原生支持 JDK 17,且依赖 Spring Framework 6.x,是更适配的组合:
- 修改项目构建文件(
pom.xml或build.gradle),将 Spring Boot 版本改为 3.0.x(LTS 版本如 3.0.11)或 3.1.x(最新稳定版如 3.1.4) - 移除手动指定的 Spring Framework 依赖版本,让 Spring Boot 的依赖管理自动引入兼容的版本
- 检查第三方依赖,确保它们已升级到支持 Spring Framework 6.x 的版本(部分旧库可能需要更新)
方案二:保持 Spring Boot 2.7.5,使用兼容的 Spring Framework 版本
Spring Boot 2.7.x 本身支持 JDK 17,无需升级到 3.x:
- 移除所有手动指定的 Spring Framework 6.x 依赖配置,让 Spring Boot 自动引入对应的 5.3.x 版本
- 用依赖分析工具排查冲突:
- Maven:执行
mvn dependency:tree,找出强制引入 Spring Framework 6.x 的依赖,通过<exclusions>排除 - Gradle:执行
./gradlew dependencies,排查并排除冲突依赖
- Maven:执行
为什么之前降级没解决问题?
大概率是项目中仍残留 Spring Framework 6.x 的依赖包,或者有第三方依赖强制引入了 6.x 版本。通过依赖分析工具可以定位到具体的冲突来源,彻底清理后即可解决。
内容的提问来源于stack exchange,提问作者Vinit Pandey
相关产品推荐
相关产品推荐

