news 2026/6/15 14:48:45

使用高版本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/6/15 11:08:10

26软考初级[信息系统运行管理员]考试核心:物联网、云计算运维

一、物联网运维1.物联网的体系结构物联网从低到高分为4层&#xff1a;感知层、传输层、处理层和应用层。感知层&#xff1a;位于物联网四层模型的最下层&#xff0c;是上面各层的基础。它的作用就是采集各种物体设备的数据&#xff0c;采集设备主要有RFID阅读器&#xff0c;无线…

作者头像 李华
网站建设 2026/6/15 11:03:07

【2026最新】一篇文章带你了解网络安全就业前景

作为与互联网共生的 “朝阳产业”&#xff0c;网络安全早已不是黑客与技术宅的专属领域。从个人隐私保护到国家信息安全&#xff0c;从企业数字化转型到智慧城市建设&#xff0c;网络安全人才的需求正呈爆发式增长。 最新数据表示&#xff1a; 网络安全人才缺口&#xff1a;202…

作者头像 李华
网站建设 2026/6/15 11:07:20

一文带你探究无感FOC电机控制代码的奥秘

无感FOC电机控制代码&#xff0c;算法采用滑膜观测器&#xff0c;SVPWM控制&#xff0c;启动采用Vf,全开源代码&#xff0c;很有参考价值。 带原理图&#xff0c;SMO推导&#xff0c;附有相关的文档资料&#xff0c; matlab模型&#xff0c;电机控制资料。最近在研究电机控制相…

作者头像 李华
网站建设 2026/6/15 11:06:34

【RAG知识库】本地搭建chatgpt知识库

&#x1f916;️ 一种利用 langchain 思想实现的基于本地知识库的问答应用&#xff0c;目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。 实现原理如下图所示&#xff0c;过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -…

作者头像 李华
网站建设 2026/6/15 12:04:13

专著和编著有啥区别?是一回事吗?

专著和编著有啥区别&#xff1f;专著和编著都是学术著作吗&#xff1f;怎么区分&#xff1f;下面淘淘学术来回答作者的这个疑问。 一、专著和编著的定义 很多作者容易把专著和编著混淆&#xff0c;是因为对于专著和编著的概念不清楚。看到专著和编著就就差一个字&#xff0c…

作者头像 李华