当前位置: 首页 > news >正文

解决苍穹外卖项目中 MyBatis - Plus 版本冲突问题

我在开发黑马苍穹外卖项目时,引入 MyBatis - Plus 依赖后,遭遇了 MyBatis 和 MyBatis - Plus 版本冲突的错误,经过一番排查与实践,终于解决,现将过程分享如下:

一、问题现象

项目启动时抛出org.springframework.beans.factory.UnsatisfiedDependencyException异常,底层嵌套java.lang.NoSuchFieldError: IGNORED错误,提示在创建SqlSessionFactory等 Bean 时出现问题,初步判断是 MyBatis - Plus 相关依赖版本不兼容导致。

二、问题根源

(一)依赖版本不一致

sky - pojo模块中,mybatis - plus - annotation的版本为3.5.11,而主模块sky - servermybatis - plus - boot - starter版本是3.5.3.1,二者版本不匹配,使得注解与核心库无法协同工作 。

(二)MyBatis 核心库兼容问题

MyBatis - Plus 3.5.3.1 对 MyBatis 核心库有特定版本要求,项目中引入的 MyBatis 版本不满足其期望,导致出现NoSuchFieldError: IGNORED错误,该错误源于 MyBatis - Plus 期望在 MyBatis 中找到IGNORED字段,但实际版本不包含此内容。

三、解决方案

(一)统一 MyBatis - Plus 相关依赖版本

sky - pojo模块里,将mybatis - plus - annotation的版本修改为与sky - servermybatis - plus - boot - starter一致的版本,确保整个项目中 MyBatis - Plus 相关依赖版本统一。修改后的pom.xml依赖如下:

<!-- 在sky - pojo模块中修改 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis - plus - annotation</artifactId><version>3.5.3.1</version> <!-- 与主模块版本一致 --><scope>compile</scope>
</dependency>

(二)清理并重新构建项目

  1. 执行mvn clean install命令,清理项目原有构建产物并重新构建,确保新的依赖配置生效。
  2. 在 IDE(如 IntelliJ IDEA)中,执行 “Invalidate Caches” 操作清理缓存并重启 IDE,避免旧缓存影响新依赖加载。

四、总结

在使用 MyBatis - Plus 这类框架时,要注意相关依赖的版本兼容性。不同模块间的依赖版本要保持统一,否则容易出现类找不到、字段不存在等诡异错误。这是我的排查步骤:

  1. 检查所有相关依赖的版本,找出不一致的部分;
  2. 统一版本,确保依赖协同工作;
  3. 清理构建产物与 IDE 缓存,重新构建项目。
http://www.dtcms.com/a/321853.html

相关文章:

  • 【Linux运维】深入理解Cookie与Session机制:安全性与性能的平衡艺术
  • SAP接口日志查询
  • 多级缓存架构:新品咖啡上线引发的数据库压力风暴与高并发实战化解方案
  • 数据返回后需要刷新才会展示的解决方法
  • Vue3 组合式API
  • 飞算JavaAI深度解析:专为Java生态而生的智能引擎
  • 快速了解svm算法
  • Java 执行 SFTP 文件上传和下载
  • ​​《深入浅出K-means算法:从原理到实战全解析》​预告(提纲)
  • 【Spring Boot 快速入门】八、登录认证(一)基础登录与认证校验
  • 阿里巴巴高级Java工程师面试算法真题解析:LRU Cache实现
  • 详解 RT-Thread 串口一配置、设备查找与打印功能(rt_kprintf)的绑定机制
  • 完整设计 之 运行时九宫格 (太乙九宫 播放器)
  • AI 记忆管理系统:工程实现设计方案
  • 【感知机】感知机(perceptron)学习算法知识点汇总
  • 代码随想录算法训练营第三十八天、三十九天|动态规划part11、12
  • 【LLM开发学习】
  • 小程序实现二维码图片Buffer下载
  • C#结合HALCON去除ROI选中效果的实现方法
  • django uwsgi启动报错failed to get the Python codec of the filesystem encoding
  • 如何永久删除三星手机中的照片?
  • Nestjs框架: 接口安全与响应脱敏实践 --- 从拦截器到自定义序列化装饰器
  • Charles中文版抓包工具功能解析,提升API调试与网络性能优化
  • Redis原理,命令,协议以及异步方式
  • 【数字投影】艺术视觉在展厅中的多维传达与设计创新
  • 【MySQL】初识索引
  • 51c视觉~合集16
  • 批量把在线网络JSON文件(URL)转换成Excel工具 JSON to Excel by WTSolutions
  • NOIP 2024 游记
  • 不同的子序列-二维动态规划