当前位置: 首页 > 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.lryc.cn/news/613746.html

相关文章:

  • 基于大数据的地铁客流数据分析预测系统 Python+Django+Vue.js
  • Java学习进阶--集合体系结构
  • 0_外设学习_ESP8266+云流转(no 0基础)
  • Vue 项目安全设置方案:XSS/CSRF 防护指南
  • UE4/UE5 Android 超大(视频)文件打包/防拷贝方案
  • 【开源工具】网络交换机批量配置生成工具开发全解:从原理到实战(附完整Python源码)
  • 小孙学变频学习笔记(十三)电动机参数的自动测量 矢量控制的转速反馈
  • 如何永久删除三星手机中的照片?
  • OpenBMC中libgpio架构与驱动交互全解析:从硬件映射到应用控制
  • 数据库表字段命名建议和最佳实践
  • 二十八天(数据结构:图的补充)
  • Deepoc具身智能开发板赋能采摘机器人的技术突破与应用实践
  • Android Studio第一个kotlin项目“Hello Android”
  • 机械学习--SVM 算法
  • Kotlin反射
  • Android 安全编程:Kotlin 如何从语言层保障安全性
  • 机械学习--k-means
  • 移动端网页调试实战,网络请求延迟与超时问题全链路排查指南
  • Java枚举类从入门到精通
  • gmssl私钥文件格式
  • 软件销售跟进思路
  • 弱电+机房+设备+运维资料合集方案(Word+PPT)
  • ORACLE物化视图快速刷新失败原因查找
  • 分治-快排-215.数组中的第k个最大元素-力扣(LeetCode)
  • oracle-plsql理解和操作
  • 【MongoDB】查询条件运算符:$expr 和 $regex 详解,以及为什么$where和$expr难以使用索引
  • [Oracle] LEAST()函数
  • 经常问的14002
  • Kafka生产者事务机制原理
  • 前端单元测试最佳实践(一)