SpringBoot3整合MyBatis-Plus3.5与JDK17时出现IllegalArgumentException异常
问题解决:SpringBoot 3.2.0 + MyBatis-Plus 3.5.3.2启动异常
问题根源
MyBatis-Plus 3.5.3.2与Spring Boot 3.2.0依赖的Spring 6.1.x存在兼容性冲突:Spring 6.1对FactoryBean的factoryBeanObjectType属性类型要求从String改为了Class,而旧版本MyBatis-Plus仍以String类型传入,触发类型不匹配的IllegalArgumentException。
解决方案
1. 升级MyBatis-Plus到兼容版本
将MyBatis-Plus版本升级至3.5.4.1及以上,该版本已修复Spring 6.1的兼容性问题。修改pom.xml中的依赖:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.4.1</version> </dependency>
2. 优化Mapper扫描配置
- 避免同时混用
@Mapper注解和@MapperScan,建议统一采用一种方式:要么给所有Mapper接口添加@Mapper,要么在启动类中使用@MapperScan指定准确的Mapper包路径(比如你的Mapper如果在com.web_chat_back.mapper下,就写@MapperScan("com.web_chat_back.mapper"),缩小扫描范围减少冲突)。
3. 清理并刷新依赖
执行mvn clean install命令,或在IDE中刷新Maven依赖,确保新的MyBatis-Plus版本被正确引入,排除旧版本的缓存干扰。
内容的提问来源于stack exchange,提问作者mmmyyy
相关产品推荐
相关产品推荐

