升级Spring Framework至6.0.0后访问CollectionUtils错误的解决方法
解决Spring 6.0.0升级后
cannot access org.springframework.util.CollectionUtils错误 问题原因
这个错误通常由依赖缺失、版本冲突或JDK版本不兼容引发:
- Spring 6.0.0强制要求JDK 17及以上,低版本JDK会导致类加载异常;
- 项目中存在Spring模块版本不一致情况,旧版本依赖覆盖了6.0.0的
spring-core(CollectionUtils属于spring-core模块); - 可能遗漏了部分Spring模块依赖,或依赖范围配置错误。
解决步骤
1. 配置JDK 17+版本
Spring 6.0.0要求最低JDK 17,在sbt项目中添加以下配置:
ThisBuild / javaHome := Some(file("/你的JDK17安装路径")) ThisBuild / javacOptions ++= Seq("--release", "17") // 确保Scala版本兼容:Scala 2.13.8+或Scala 3.1+支持JDK17 ThisBuild / scalaVersion := "2.13.12"
2. 统一Spring模块版本,避免冲突
将所有Spring相关依赖统一为6.0.0版本,同时通过dependencyOverrides强制覆盖冲突依赖:
val springVersion = "6.0.0" libraryDependencies ++= Seq( // 其他业务依赖 "org.springframework" % "spring-beans" % springVersion, "org.springframework" % "spring-core" % springVersion, // 若项目用到其他Spring模块(如spring-context、spring-aop),需同步添加 // "org.springframework" % "spring-context" % springVersion ) // 强制所有Spring依赖使用指定版本,避免第三方依赖引入旧版本 dependencyOverrides ++= Seq( "org.springframework" % "spring-beans" % springVersion, "org.springframework" % "spring-core" % springVersion, "org.springframework" % "spring-context" % springVersion // 按需添加其他模块 )
3. 清理并重新下载依赖
执行以下命令清理旧缓存,拉取正确版本的依赖:
sbt clean update
4. 检查依赖树排查冲突
运行sbt dependencyTree命令,查看依赖树中所有Spring模块的版本,确保没有旧版本(如5.2.20.RELEASE)被引入。若存在未覆盖的旧版本,补充到dependencyOverrides中。
5. 确认代码引用路径正确
检查代码中CollectionUtils的导入语句是否为:
import org.springframework.util.CollectionUtils
避免包名拼写错误导致的类找不到问题。
内容的提问来源于stack exchange,提问作者yuyu kungkung
相关产品推荐
相关产品推荐

