SpringBoot 3.2.12升级至3.4.0遇NoSuchMethod错误求助
解决SpringBoot 3.4.0升级后
CollectionUtils.newLinkedHashSet(int)方法缺失问题 核心原因
该方法在Spring Framework 6.2.x版本中已被移除,替代方案为无参的CollectionUtils.newLinkedHashSet(),或直接实例化new LinkedHashSet<>(int initialCapacity)。报错说明你的项目代码或依赖库中仍在调用这个已废弃并移除的重载方法。
具体解决步骤
1. 检查并修改项目代码中的直接调用
全局搜索项目内的CollectionUtils.newLinkedHashSet(int),根据需求替换:
- 无需指定初始容量时,改用
CollectionUtils.newLinkedHashSet() - 需要指定初始容量时,直接使用
new LinkedHashSet<>(你的容量值)
2. 排查第三方依赖的间接调用
即便自身代码未调用该方法,第三方库可能仍在使用旧方法:
- 用
mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)导出依赖树,排查是否存在Spring相关库版本不一致的情况 - 通过JD-GUI等字节码工具检查第三方jar包,定位调用该方法的依赖库
- 升级相关第三方库至兼容Spring Framework 6.2.x的版本,比如Spring Cloud、Spring Security等生态组件,确保其版本与SpringBoot 3.4.0匹配
3. 强制统一Spring Framework版本
若依赖树存在隐性版本冲突,在构建脚本中强制指定版本:
- Maven:在
<dependencyManagement>中添加
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>6.2.1</version> <type>pom</type> <scope>import</scope> </dependency>
- Gradle:在
build.gradle中添加
implementation platform('org.springframework:spring-framework-bom:6.2.1')
4. 清理构建缓存
旧编译缓存可能导致类加载异常,执行以下操作:
- Maven:
mvn clean install -U - Gradle:
./gradlew clean build --refresh-dependencies
内容的提问来源于stack exchange,提问作者Farha
相关产品推荐
相关产品推荐

