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

Maven项目更新传递依赖修复Spring-Beans漏洞的方法咨询

方案优劣判断
  • 你提到的第一种手动指定spring-beans、spring-core版本的方案完全不推荐。Spring Boot官方对parent中管理的所有依赖做过全链路兼容性校验,你把5.2.x线的Spring核心包硬升到5.3.x跨次版本,会导致Spring生态下的其他关联包(spring-context、spring-aop、spring-web等)版本不匹配,现在没报错不代表运行时不会出现类缺失、方法签名不匹配的隐性问题,隐患比原漏洞还大。
  • 第二种升级spring-boot-starter-parent的方案方向是对的,但你选的版本跨度过大,且没有处理依赖冲突,才出现了Mockito相关报错。
报错原因说明

你碰到的NoSuchMethodError是典型的依赖版本冲突:Spring Boot 2.3.x线默认绑定的Mockito版本为3.3.x,而2.7.0默认绑定Mockito 4.x版本,org.mockito.Answers.get()方法是Mockito 4.x新增的API,说明你项目中存在显式引入的低版本Mockito依赖,没有跟着Spring Boot的依赖管理升级,导致类路径下加载了旧版本的Mockito类。

推荐修复方案(按优先级从高到低)

1. 同大版本线升级Spring Boot补丁版本(零兼容风险,首选)

你当前使用的2.3.9.RELEASE属于Spring Boot 2.3.x维护线,官方在后续补丁版本中已经修复了CVE-2022-2965(你提到的CVE编号漏了2022前缀),不需要跨版本升到2.7.0。直接将parent版本升级到2.3.12.RELEASE即可,该版本默认绑定的Spring版本为5.2.22.RELEASE,正好覆盖漏洞修复,且所有依赖都经过官方兼容性校验,不会出现额外冲突。
配置如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.12.RELEASE</version>
</parent>

修改完成后执行mvn dependency:tree | grep spring-beans,确认输出的spring-beans版本为5.2.22.RELEASE即修复完成,不需要额外手动指定任何Spring模块的版本。

2. 若确实需要升级到2.7.x等高版本Spring Boot

升级前先清理测试依赖的版本冲突:

  • 删除项目中所有显式写死版本的Mockito、JUnit、spring-test、maven-surefire-plugin依赖,统一交给spring-boot-starter-parent的依赖管理控制版本
  • 执行mvn dependency:tree | grep mockito排查依赖树,确保所有Mockito相关包版本均为4.x以上,没有3.x版本的残留包引入
  • 清理完成后再重新构建即可解决Mockito相关报错

3. 临时无法升级Spring Boot版本时的兼容方案

如果因为项目限制暂时不能升级Spring Boot parent版本,不要直接在<dependencies>中单独声明单个Spring模块的版本,应该通过覆盖版本属性的方式,统一升级所有Spring模块到同线安全版本,避免版本不匹配:

<properties>
    <!-- 统一覆盖所有Spring模块版本,保持5.2.x线兼容性 -->
    <spring.version>5.2.22.RELEASE</spring.version>
</properties>

这种方式会让parent中管理的所有Spring相关包统一升级到5.2.22.RELEASE,不会出现单个包版本不一致的问题。

避坑提醒

绝对不要手动跨大版本指定单个Spring核心包的版本,Spring核心模块(spring-core、spring-beans、spring-context、spring-aop等)之间是强耦合的,必须保持版本完全一致,手动指定单个包版本会导致其他关联包版本错位,引发难以排查的运行时异常。


内容的提问来源于stack exchange,提问作者somya gaur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:16:31