报错如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.currentModelClass(ServiceImpl.java:87)
The following method did not exist:
'java.lang.Class com.baomidou.mybatisplus.core.toolkit.ReflectionKit.getSuperClassGenericType(java.lang.Class, int)'
The calling method's class, com.baomidou.mybatisplus.extension.service.impl.ServiceImpl, was loaded from the following location:
jar:file:/D:/M/WE/m/com/baomidou/mybatis-plus-extension/3.4.1/mybatis-plus-extension-3.4.1.jar!/com/baomidou/mybatisplus/extension/service/impl/ServiceImpl.class
The called method's class, com.baomidou.mybatisplus.core.toolkit.ReflectionKit, is available from the following locations:
jar:file:/D:/M/WE/m/com/baomidou/mybatis-plus-core/3.5.6/mybatis-plus-core-3.5.6.jar!/com/baomidou/mybatisplus/core/toolkit/ReflectionKit.class
The called method's class hierarchy was loaded from the following locations:
Action:
Correct the classpath of your application so that it contains compatible versions of the classes com.baomidou.mybatisplus.extension.service.impl.ServiceImpl and com.baomidou.mybatisplus.core.toolkit.ReflectionKit
Process finished with exit code 1
问题分析:
错误是由于 MyBatis-Plus 的 mybatis-plus-extension
模块版本与 mybatis-plus-core
版本不一致,导致 ReflectionKit.getSuperClassGenericType
方法签名不兼容。Spring Boot 3.x 需要 MyBatis-Plus 3.5.3+ 版本,且所有相关模块必须版本统一。
成功解决:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.6</version>
<exclusions>
<!-- 排除旧版本的扩展模块 -->
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 手动引入统一版本的扩展模块 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.6</version>
</dependency>
统一版本即可。