news 2026/3/25 16:26:41

使用高版本SpringBoot导致Junit5的NoSuchMethodError的错误

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用高版本SpringBoot导致Junit5的NoSuchMethodError的错误

关于作者:

一个深耕自己,不内耗的长期主义者。一个对技术充满激情,对工作对生活充满热情的热血青年。坚信,真正能让大家看懂的技术文章才是好文章,坚持用通俗易懂的大白话写技术文章,并会持续更新。

一、问题现象和分析:

先说下具体现象:大部分都是在做第三阶段第6章MyBatis的springboot-mybatis-quickstart这个项目的单元测试时会遇到这个错误

分析:由于使用IDEA创建SpringBoot项目时,它默认只能选择最近最新的几个SpringBoot的版本,所以你只能选择比较新的版本,目前它默认是4.0.2的版本,你如果不选的话,使用默认的,那创建出来的项目使用的就是SpringBoot4.0.2版本

而较高版本的Spring Boot,比如4.x,默认使用较新版本的JUnit 5

但是,IDEA 呢,咱们使用的是IntelliJ IDEA 2024.1这个版本,为什么统一使用这个版本,咱们之前也说过,是因为经过老师的测试,目前来说这个版本是相对来说较稳定的一个版本,2025的版本多多少少都会有一些小bug,所以咱们统一使用的2024.1这个版本

而IntelliJ IDEA 2024.1 虽然是较新的版本,但可能仍未完全兼容Spring Boot 4.0.2 所依赖的 JUnit Platform 的最新 API 变化,所以就会导致在运行单元测试时,IDEA 内置的测试执行器调用了一个已变更或移除的方法,例如 ReflectionUtils.getDefaultClassLoader(),从而抛出以下的异常:

二、最终的解决方案:

最简单的解决方案就是,直接复制我下面提供的这个pom.xml内容,替换你当前项目里pom.xml的内容,我提供的这个pom里使用的SpringBoot版本使用的和咱们课程里是一样的都是3.2.8的版本,这个版本里依赖的单元测试对2024.1的IDEA 是兼容的

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.8</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.itheima</groupId> <artifactId>springboot-mybatis-quickstart</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-mybatis-quickstart</name> <description>springboot-mybatis-quickstart</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter-test</artifactId> <version>3.0.3</version> <scope>test</scope> </dependency> <!--数据库连接 Druid-spring-boot-starter--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.19</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>

或者也可以去老师给的课程资料里,找到springboot-mybatis-quickstart这个项目,把对应的pom.xml文件的内容直接复制过来,替换你当前项目里pom.xml的内容

然后,一定一定要记得刷新maven,你不刷新,是不会生效的

刷新完之后,再去运行你的单元测试,发现就可以了

如果这篇文章对你有所启发或帮助,希望可以花费你一秒钟的时间,点亮【赞和推荐】,如果能点【分享】给更多同行的人,那就更好了。你的每一个互动,都是我持续创作的最大动力。感恩遇见,感谢陪伴。

往日精选

分文件夹去存文件,其实就是哈希存储的思想

哈希冲突不可避免吗?哈希思想太重要了

聊明白:同步刷盘、异步刷盘以及MQ刷盘策略

对象在内存中的分配、布局、访问、GC垃圾回收

ThreadLocal:原理、内存泄漏、源码分析

大白话聊明白多线程的基础,Java线程的状态和转换

大白话聊聊常见的IO模型:BIO、NIO和IO多路复用

大白话聊懂IO的零拷贝技术

大白话搞懂Java中Synchronized的逻辑

大白话聊一聊,数据结构的基石:数组和链表

大白话聊一聊,常用的哈希算法

对接第三方支付常用到的 对称加密和非对称加密

大白话聊明白Thread、Runnable、FutureTask和Callable之间的关系

每秒百万ID不重复!SnowFlake雪花算法的原理揭秘

用通俗易懂的大白话彻底搞明白SQL中的group by

大白话让你彻底搞明白Java里的Lambda表达式

一篇搞懂ASM、字节码和动态代理,到底咋回事?

为什么Spring不用静态代理?静态代理的三大硬伤!

大白话搞懂Java反射的黑魔法!为啥框架都爱用它?

MySQL索引长度限制和索引长度到底怎么计算

JDK的Proxy vs CGLIB两种动态代理的武林秘籍

Spring注册Bean别只用@Component了 @Import才是秘密武器


关于作者:

一个深耕自己,不内耗的长期主义者。一个对技术充满激情,对工作对生活充满热情的热血青年。坚持用通俗易懂的大白话写技术博文,杜绝复制来复制去没营养的内容,坚持用大白话分享自己总结的Java知识,并会持续更新。

点击下方 微信公众号,获取更多Java干货

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 21:17:40

C++流程控制语句:构建结构化程序的核心逻辑

C 流程控制语句&#xff1a;构建结构化程序的核心逻辑 流程控制语句是结构化编程&#xff08;Structured Programming&#xff09;的三大支柱之一&#xff08;顺序、选择、循环&#xff09;&#xff0c;它们决定了程序“下一步该执行哪一段代码”。C 继承了 C 的控制结构&…

作者头像 李华
网站建设 2026/3/22 3:15:18

基于Spring Boot和Activiti6的工作流OA系统设计与实现

基于Spring Boot和Activiti6的工作流OA系统设计与实现 基于Spring Boot和Activiti6的工作流OA系统&#xff1a;企业级应用开发的完美实践 在当今数字化时代&#xff0c;企业对于高效、安全的办公自动化系统需求日益增长。工作流OA系统作为企业信息化建设的核心组成部分&#…

作者头像 李华
网站建设 2026/3/14 6:19:41

基于Spring Boot与Vue的学习教程网站系统设计与实现

基于Spring Boot与Vue的学习教程网站系统设计与实现 基于Spring Boot与Vue的学习教程网站系统&#xff1a;毕业设计源码与论文资源详解 在当今数字化教育时代&#xff0c;在线学习平台已成为知识传播的重要渠道。对于计算机科学或软件工程专业的学生而言&#xff0c;一个功能…

作者头像 李华
网站建设 2026/3/14 8:59:51

基于Springcloud的智能社区服务系统毕业论文+PPT(附源代码+演示视频)

文章目录 一、项目简介1.1 运行视频1.2 &#x1f680; 项目技术栈1.3 ✅ 环境要求说明1.4 包含的文件列表 前台运行截图后台运行截图项目部署源码下载 一、项目简介 项目基于SpringBoot框架&#xff0c;前后端分离架构&#xff0c;后端为SpringBoot前端Vue。基于SpringCloud的…

作者头像 李华
网站建设 2026/3/23 8:36:21

学术数据魔法师:书匠策AI如何让你的教育研究“数据开口说话”

在教育研究的江湖里&#xff0c;数据是“武功秘籍”&#xff0c;分析是“内功心法”。但面对堆积如山的数据、晦涩难懂的统计术语&#xff0c;许多研究者&#xff08;尤其是学生党&#xff09;常常陷入“数据焦虑”——明明想用数据证明观点&#xff0c;却被工具卡脖子&#xf…

作者头像 李华
网站建设 2026/3/14 5:20:50

能见度监测站 10/50km

Q1&#xff1a;50km能见度监测站的核心定位是什么&#xff1f;与普通能见度监测设备有何不同&#xff1f;A&#xff1a;核心定位是“超远量程能见度精准监测终端”&#xff0c;专注解决低能见度天气下的监测盲区问题&#xff0c;适配公路、高速、机场等对能见度监测要求较高的出…

作者头像 李华