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

启动Spring Boot项目时出现ThrowingSupplier类找不到错误求助

解决Spring Boot启动时java.lang.NoClassDefFoundError: org/springframework/util/function/ThrowingSupplier错误

问题根源

从错误栈和你的pom.xml配置可以明确:Spring Framework版本冲突。
你的项目父依赖是Spring Boot 2.7.7,它默认配套的是Spring Framework 5.3.x版本,但你手动引入了spring-beans:6.0.3(属于Spring Framework 6.x)。org.springframework.util.function.ThrowingSupplier是Spring 6.x才新增的类,Spring 5.3.x中不存在这个类,导致启动时类加载失败。

解决方案

1. 移除冲突的手动依赖

删除pom.xml中这段手动添加的spring-beans依赖——Spring Boot的starter依赖已经自动管理了所有Spring核心组件的版本,不需要单独引入:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>6.0.3</version>
</dependency>

2. 清理并重新构建项目

执行Maven命令清理本地仓库中的冲突依赖,重新构建:

mvn clean install -U

重启IDE,确保依赖被重新加载后再启动项目。

可选升级方案(若需使用Spring 6.x)

如果确实需要使用Spring Framework 6.x的特性,可以将Spring Boot升级到3.x版本(你的项目已经使用Java 17,满足Spring Boot 3.x的要求),但注意:

  • Spring Boot 3.x不再兼容springfox 2.9.2,需要替换为springdoc-openapi等支持Spring Boot 3的API文档工具
  • 升级后需检查所有第三方依赖的版本兼容性

内容的提问来源于stack exchange,提问作者Gabriel Menezes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:35:20