SpringBoot整合MybatisPlus时“注入失败”的问题记录

2023-05-16

问题情景:

最近将几个小的Demo整合在一起,其中项目A使用Mybatis项目B使用Mybatis-plus。在正常的修改完application.yml,pom文件后尝试启动项目,启动失败。报错内容大致如下:

Error creating bean with name 'faultController': Unsatisfied dependency expressed through field 'faultService';
Error creating bean with name 'FaultService': Injection of resource dependencies failed;
Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException:
Caused by: java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory

分析问题

通过日志的报错信息的观察,初步得出在Bean工厂创建对象时,注入的属性都注入失败了,从而导致Error creating bean的错误。

关于springboot创建bean失败的情况有如下可能(在本问题中以下愿意均被排除):

1.application.yml文件中是否正确配置mapper-locations属性的值

2.mapper层的接口是否忘记添加@Mapper注解

3.Springboot启动类中是否特殊指定@MapperScan("")

4.mapper.xml的<mapper namespace>是否与mapper接口名对应

上述情况逐一排查,如果均无法解决问题则把问题原因转移到POM文件所引入的依赖中,此时发现POM依赖中同时引入了mybatis的starter和mybatis-plus的starter

            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring.boot.version}</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.2</version>
           </dependency>

两个启动器同时存在会导致mybatis-plus的启动器无法正常启动,反映在项目启动日志中,启动日志不会打印Mybatis-Plus的启动logo

解决方案

如果项目中需要同时使用mybatis和plus,只需要保留mybaits-plus的启动器即可。同时存在会导致mybatis-plus启动器失效,同时mybatis-plus的启动器本身包含mybatis启动器。注释掉pom中的依赖,启动日志显示Mybatis-Plus的logo,项目正常启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot整合MybatisPlus时“注入失败”的问题记录 的相关文章

随机推荐

  • C++实现优先级队列模板类

    1 优先级队列 1 1 基本原理 仿照C 43 43 STL 中的优先级队列priority queue xff0c 主要实现以下功能 xff1a 向队列中添加元素后 xff0c 队列自动调整 xff0c 保证队列中优先级最高的元素在队列头
  • C++通过WMI获取计算机电池电压的程序以及我出现的问题解决

    C 43 43 通过WMI获取计算机电池电压的程序以及我出现的问题解决 ConsoleApplication1 cpp 定义控制台应用程序的入口点 include stdafx h include DXGI h include vector
  • 深度学习——批量归一化(笔记)

    主流的卷积网络基本都设计批量归一化这个层 1 为什么要批量归一化 xff1f 网络层很深 xff0c 数据在底层 xff0c 损失函数在最顶层 反向传播后 xff0c 顶层的梯度大 xff0c 所以顶层训练的较快 数据在底层 xff0c 底
  • Mininet连接ONOS的一些问题

    Mininet连接ONOS的一些问题 一 启动ONOS二 简单小问题1 Mininet创建最简拓扑后连接不上远程控制器2 Mininet创建最简拓扑后主机之间ping不通3 不启动fwd应用自己通过REST API下发流表发现两台主机间pi
  • 关于codeblocks找不到路径从而无法编译的解决方法

    下载完codeblocks后 xff0c 可能会出现像下面的情况 解决方法是 xff1a 点击codeblocks里的settings的Compiler xff08 1 xff09 可能是中间箭头蓝色的那里出错 xff0c 有些人可能会在安
  • 如何获取维普免费账号--在校外下载维普万方等全文

    如何获取维普免费账号 在校外下载维普万方等全文 如何获取维普免费账号 在校外下载维普万方等全文 1 马上就要工作了 xff0c 觉得学校里面图书馆资料很多 xff0c 并且很有用 xff0c 都可以在CNKI 万方维普等中文数据库 xff0
  • 京东网络开放之路——自研交换机探索与实践

    相比传统商业交换机 xff0c 白盒交换机具有更好的开放性和灵活性 xff0c 解决了运维管理方面的诸多痛点 xff0c 随着SONiC的不断完善和白盒交换机市场的成熟 xff0c 京东基于SONiC研发了自己的白盒交换机 xff0c 更加
  • Linux|sed命令花式批量修改文件

    前言 xff1a sed命令 xff0c 流式修改文本文件的强大工具 xff0c 比如 xff0c 最常用的关闭selinux时通常采用sed命令快速修改 OK xff0c 其实sed命令虽然强大 xff0c 但它修改文件的方式是非常多的
  • Python列表详解_List()

    Python列表 一 了解列表二 列表的创建三 访问列表中的值四 对列表进行更新五 删除列表元素 一 了解列表 什么是列表 xff1f 列表能干什么 xff1f 今天我们几分钟统统解决他 xff01 1 首先我们先来了解一下列表 列表是Py
  • Linux(Deepin、Ubuntu)安装Citrix receiver教程

    Deepin20 6安装Citrix receiver教程 安装的deepin20 6想要安装Citrix receiver xff0c 发现要么装不上 xff0c 要么装上了不能用 xff0c 找了好多资料 xff0c 最终找到可以使用的
  • 服务器(一):VNC view 无法打开终端问题

    1 VNC view 无法打开终端问题 参考链接 xff1a Ubuntu 的终端打不开 xff0c gnome terminal没反应 ubuntu 打开不了gnome terminal 显示错误提示exited status 8 Ubu
  • Hadoop 从零开始学习系列-wordCount

    学习基于hadoop2 5 2版本 WordCount做为hadoop的hello world程序 xff0c 今天花了半天时间 xff0c 终于跑出了结果 xff0c 以下记录过程 1 建立maven工程 xff0c 加载hadoop相关
  • 图像处理 - GLCM灰度共生矩阵如何计算

    因为最近要在OpenCV上试试各种图像分割算法的效果 xff0c 其中灰度共生算法没有办法直接调用库函数实现 xff0c 看了很多文章 xff0c 其中有一篇博文讲的很清楚 博主有提供原理和源码 xff0c 大家可以直接看原博 原文地址 x
  • SUSE12 Remote side unexpectedly closed network connection ,Connection reset by peer原因之一

    用工具新开ssh远程报错如下 xff1a 已连接的ssh中 xff0c telnet报错如下 同网段机器ssh命令报错如下 xff1a 在对比了同操作系统同文件的配置后 xff0c 排除了 etc hosts deny跟 etc hosts
  • xterm连接虚拟机里的ubuntu

    mobaxterm连接在虚拟机的abuntu 1 在Ubuntu上打开SSH服务 安装 openssh client 和 openssh server sudo apt get install openssh client sudo apt
  • 图解Linux命令之--fdisk命令

    fdisk命令 gt 磁盘分区管理工具 添加分区的流程 fdisk dev sda 选择要分区的硬盘 p 列出当前分区表 n 添加新分区 回车 选择开始的块地址 直接回车默认就可以了 43 2G 输入要添加分区的大小 43 200M xff
  • 安装docker-compose报ERROR: Cannot uninstall ‘PyYAML‘. It is a distutils installed project and thus we c

    在CentOS7中 xff0c 如果python版本为3 x xff0c 在安装docker compose时会报错 xff1a ERROR Cannot uninstall PyYAML It is a distutils install
  • PostgreSql | 数据库 |自定义函数的设计和实现

    前言 xff1a 数据库中的函数概念 和开发语言 xff0c Java xff0c PHP xff0c Python等等类似 xff0c 关系型数据库也是有函数的 xff0c 函数指的是动态的封装一部分特定功能的集合 例如 xff0c 查询
  • 元学习系列(一):Siamese Network(孪生网络)

    目前有一种说法认为 xff0c 深度学习模型在数据量较大的情况下才能取得较好的效果 xff0c 当数据量较少 xff0c 更偏向于使用传统的机器学习模型 想办法从深度学习的方向构建模型 xff0c 使得模型在数据量较小的情况下也能取得较好效
  • SpringBoot整合MybatisPlus时“注入失败”的问题记录

    问题情景 xff1a 最近将几个小的Demo整合在一起 xff0c 其中项目A使用Mybatis项目B使用Mybatis plus 在正常的修改完application yml xff0c pom文件后尝试启动项目 xff0c 启动失败 报