启动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
相关产品推荐
相关产品推荐

