news 2026/4/16 9:44:47

使用高版本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/4/16 9:01:35

当教育论文遇上“数据炼金师”:书匠策AI如何把数字变成学术金矿

在学术江湖里&#xff0c;论文写作是一场“数据与逻辑的双重冒险”。有人为收集数据跑断腿&#xff0c;有人被统计代码折磨到崩溃&#xff0c;更有人对着满屏数字发呆&#xff0c;完全不知道如何让它们“开口说话”。别慌&#xff01;今天我们要认识一位教育领域的“数据炼金师…

作者头像 李华
网站建设 2026/4/16 9:00:58

uniapp微信小程序php python安卓系统的nodejs校园二手物品交换平台APP

文章目录 技术栈与平台架构核心功能模块数据库设计接口与安全部署与性能扩展性考虑 系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 技术栈与平台架构 uniapp作为跨平台开发框架&#xff0c;支持…

作者头像 李华
网站建设 2026/4/16 10:39:51

当论文写作遇上“数据魔法师”:书匠策AI如何重塑学术分析新范式

在学术江湖里&#xff0c;论文写作是每位研究者的“必修课”&#xff0c;而数据分析则是这门课里最让人头疼的“高数题”。面对堆积如山的数据、晦涩难懂的统计软件&#xff0c;许多人感叹&#xff1a;“明明想讲好一个科学故事&#xff0c;却被数据困在了‘语法课’里。”直到…

作者头像 李华
网站建设 2026/4/16 10:46:50

厨房双层拉篮推荐榜单,7款精析,助你解锁小空间收纳潜能

面对厨房空间有限、物品繁杂的难题&#xff0c;一款设计精良、功能强大的双层拉篮是提升收纳效率与厨房品质的关键。本文将基于真实性、实用性与广泛适配性原则&#xff0c;为你深入剖析并推荐7款市面主流厨房双层拉篮&#xff0c;助你找到最适合自家厨房的“收纳利器”。一、为…

作者头像 李华
网站建设 2026/4/16 12:21:26

RAGCache:让RAG系统更高效的多级动态缓存新方案

.01 概述 在当下的AI研究中&#xff0c;检索增强生成&#xff08;RAG&#xff09;技术正在逐步提升大型语言模型&#xff08;LLM&#xff09;的知识运用能力&#xff0c;帮助它们结合外部知识生成更加准确、符合现实的文本。然而&#xff0c;RAG系统却面临一个无法忽视的瓶颈…

作者头像 李华
网站建设 2026/4/16 12:17:18

手把手大模型系列|一篇文章教会你使用有RAG功能的CAMEL框架

在本教程中&#xff0c;我们将简短地介绍检索增强生成RAG (Retrieval-Augmented Generation)的组成部分&#xff0c;并详细介绍如何在CAMEL框架中使用Customized RAG和Auto RAG。备注&#xff1a;本次搭建使用Milvus作为默认向量存储。 01 RAG组成部分 检索增强生成 (Retrieval…

作者头像 李华