工程POM引入mybatis-plus-boot-starter后启动依赖冲突解决
好问题这是因为mybatis-plus-boot-starter本身并不直接依赖mybatis-spring-boot-starter它内部已经内联了 MyBatis 相关的核心依赖。让我解释一下为什么需要显式引入它MyBatis-Plus 3.4.2 的依赖结构mybatis-plus-boot-starter:3.4.2的依赖树大致是这样的textmybatis-plus-boot-starter:3.4.2 ├── mybatis-plus:3.4.2 │ ├── mybatis-plus-extension:3.4.2 │ └── mybatis:3.5.6 ├── mybatis-spring-boot-starter:2.1.4 ← 它本身也依赖了这个 │ ├── spring-boot-starter:2.3.2.RELEASE (被排除后需要自己提供) │ ├── spring-boot-starter-jdbc:2.3.2.RELEASE │ └── mybatis-spring:2.0.6 └── spring-boot-starter:2.3.2.RELEASE为什么排除后需要显式引入当你对mybatis-plus-boot-starter排除了spring-boot-starter、spring-boot-autoconfigure等依赖后mybatis-spring-boot-starter中的 Spring Boot 相关依赖也被排除了因为它是传递依赖。但mybatis-spring-boot-starter本身需要这些 Spring Boot 依赖才能正常工作它提供了MybatisAutoConfiguration等自动配置类。所以你需要显式引入mybatis-spring-boot-starter并且指定一个与你的 Spring Boot 版本兼容的版本2.1.4以确保它依赖的spring-boot-starter等包由你项目的父 POM2.3.12统一管理而不是被 MyBatis-Plus 的传递依赖带成 2.3.2。不显式引入会怎样如果你排除了 MyBatis-Plus 的 Spring Boot 依赖但没有显式引入mybatis-spring-boot-starter那么你的项目中可能完全没有mybatis-spring-boot-starter的自动配置类。或者mybatis-spring-boot-starter的版本被传递依赖带成了一个不兼容的版本比如 2.2.0它依赖 Spring Boot 2.5.x。这会导致 MyBatis-Plus 无法正常初始化启动时报NoSuchBeanDefinitionException或MybatisAutoConfiguration相关错误。另一种方式只排除 Spring Boot保留 mybatis-spring-boot-starter如果你不想显式引入mybatis-spring-boot-starter可以更精细地排除只排除它带来的 Spring Boot 依赖但保留mybatis-spring-boot-starter本身xmldependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.4.2/version exclusions !-- 排除 mybatis-plus-boot-starter 直接依赖的 spring-boot-starter -- exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter/artifactId /exclusion exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-autoconfigure/artifactId /exclusion !-- 排除 mybatis-spring-boot-starter 传递来的 spring-boot-starter-jdbc -- exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-jdbc/artifactId /exclusion !-- 但保留 mybatis-spring-boot-starter 本身不排除 -- /exclusions /dependency这样mybatis-spring-boot-starter:2.1.4仍然会被引入但它依赖的spring-boot-starter等包会被你项目的父 POM2.3.12覆盖掉因为父 POM 的dependencyManagement优先级更高。这种方式不需要显式引入mybatis-spring-boot-starter但需要确保父 POM 的dependencyManagement中锁定了所有 Spring Boot 相关版本。总结方式优点缺点显式引入mybatis-spring-boot-starter:2.1.4明确可控版本清晰多写一行依赖不显式引入只排除 Spring Boot 包简洁依赖父 POM 的dependencyManagement正确锁定版本两种方式都可以但从清晰可维护的角度推荐显式引入mybatis-spring-boot-starter因为它明确告诉其他开发者你使用的版本是兼容的。

相关新闻

你的大脑里住着两个人

你的大脑里住着两个人

01 你的大脑中,其实住着两个人一个叫“冲动的小红人”, 他是个不懂事的三岁小孩,一看到有感觉的商品,多巴胺瞬间分泌,他立马兴奋起来——“哇,好漂亮!我想要!”“太酷了,我好喜欢&am…

2026/7/23 4:31:57 阅读更多 →
开源AI实战指南:从技术原理到本地知识问答系统构建

开源AI实战指南:从技术原理到本地知识问答系统构建

最近在技术圈里,一个话题的讨论热度持续攀升:开源AI到底是不是一场“免费的午餐”?很多人以为开源AI只是降低了技术门槛,让更多人能用上大模型,但真相远不止如此。开源AI正在从根本上改变科学研究的协作方式、创新速度…

2026/7/23 4:31:57 阅读更多 →
工程POM引入mybatis-plus-boot-starter后

工程POM引入mybatis-plus-boot-starter后

一、配置 Mapper 扫描在 Spring Boot 启动类上添加 MapperScan 注解,指定 Mapper 接口所在的包路径:javaimport org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoc…

2026/7/23 4:31:57 阅读更多 →

最新新闻

C++ deque内存块配置策略:高性能队列与缓冲区的核心原理

C++ deque内存块配置策略:高性能队列与缓冲区的核心原理

1. 项目概述:为什么是deque? 在C高性能编程的语境下,选择哪个容器往往决定了程序性能的下限。我们经常听到vector、list,但 std::deque (双端队列)却像一个“熟悉的陌生人”——大家都知道它,…

2026/7/23 5:13:12 阅读更多 →
基于联发科Filogic 3平台的高性能开源路由器开发板深度解析与应用实践

基于联发科Filogic 3平台的高性能开源路由器开发板深度解析与应用实践

1. 项目概述:一块能“折腾”的高性能开源路由器心脏 最近在开源硬件圈子里,香蕉派BPI-R3这块开发板的热度不低。680元的公开发售价,配上联发科MT7986(Filogic 830)这套方案,对于想自己动手打造高性能路由器、软路由或者网络实验平台的朋友来说,吸引力确实不小。它不像成…

2026/7/23 5:13:12 阅读更多 →
C语言基本数据类型

C语言基本数据类型

C语言学前储备知识1.计算机如何执行C语言程序计算机的基本组成部分:CPU、存储器、输入设备、输出设备CPU:运算器 控制器存储器:内存:掉电数据丢失、空间小、读写效率高、价格昂贵硬盘:掉电数据不丢失、空间大、读写效…

2026/7/23 5:13:12 阅读更多 →
从 0 到 1 制作一个 Codex 桌宠

从 0 到 1 制作一个 Codex 桌宠

这篇文章记录我如何制作一个可以在 Codex 设置里切换使用的自定义桌宠:dyt。 它不是简单贴一张图片,而是一个符合 Codex pet 格式的 9 状态动画桌宠,包含待机、跑动、挥手、跳跃、失败、等待、审核等任务状态。 项目地址: GitHub…

2026/7/23 5:13:12 阅读更多 →
12周C++ QT OpenCV项目实战:从零构建桌面图像处理应用

12周C++ QT OpenCV项目实战:从零构建桌面图像处理应用

1. 项目概述与学习路径设计如果你正在寻找一个能将C、QT和OpenCV这三项硬核技术串联起来,并能产出实际作品的学习计划,那么这个为期12周的项目制学习方案,可能就是为你量身定制的。我见过太多人孤立地学习C语法、研究QT控件、或者死磕OpenCV的…

2026/7/23 5:13:12 阅读更多 →
AI如何降低科研计算复杂度:从基因比到材料模拟的实战指南

AI如何降低科研计算复杂度:从基因比到材料模拟的实战指南

如果你是一位科研工作者,最近可能感受到了这样的变化:过去需要花费数周时间进行数据清洗、模型调参和结果分析的复杂研究流程,现在通过AI工具可以在几小时内完成初步探索。这不仅仅是效率的提升,更是研究范式的根本转变。传统学术…

2026/7/23 5:12:11 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻