You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动报错:依赖版本不兼容导致方法不存在问题排查

问题结论

这个报错完全是Spring生态依赖版本不兼容导致的,不存在其他诱因。

根因分析

从你贴出的类加载路径可以直接定位冲突点:

  • 你当前运行环境里的Spring Boot核心包版本是2.7.0,这个版本在做数据库初始化检测时,会调用ConfigurableListableBeanFactory的三参数方法findAnnotationOnBean(java.lang.String, java.lang.Class, boolean)
  • 但你类路径里实际加载的spring-beans版本是5.3.9,这个版本的ConfigurableListableBeanFactory接口根本没有上述三参数重载方法——该方法是Spring Framework 5.3.16版本才新增的,5.3.9版本仅存在两参数的同名方法,调用时自然会抛出方法不存在的错误。

Spring Boot 2.7.0官方默认绑定、兼容的Spring Framework版本是5.3.20,你手动引入低版本spring-beans的操作直接打破了依赖兼容性。

修复步骤
  • 第一步:直接删除pom.xml中你手动添加的、指定版本为5.3.9的spring-beans依赖。只要正确引入了Spring Boot相关starter,构建工具会自动拉取对应兼容版本的spring-beans,不需要单独手动声明该依赖。
  • 第二步:如果你确实需要单独声明Spring相关依赖,不要随意指定版本,要么去掉version标签交给Spring Boot的依赖仲裁机制管理,要么把spring-beans版本改为5.3.20及以上的5.3.x正式版本,和Spring Boot 2.7.0的要求对齐。
  • 第三步:修改完pom后,执行构建命令mvn clean compile清空旧的构建缓存和错误依赖,刷新IDE的Maven/Gradle依赖后再启动项目即可。
注意事项

不要随意手动指定Spring生态下各个组件的版本,Spring Boot官方已经做好了整套依赖的版本兼容校验,手动指定版本极易出现这类方法不存在、类不存在的兼容性问题。你之前调整版本没解决问题,基本是因为没有对齐Spring Boot官方的版本匹配关系,或者改完配置没有清理旧缓存、刷新依赖,导致运行时加载的还是旧版本的jar包。

内容的提问来源于stack exchange,提问作者SAM CHEUNG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:39:49