• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
Jessy_Huang
帮助5

问题情景:

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

  1.  
    Error creating bean with name 'faultController': Unsatisfied dependency expressed through field 'faultService';
  2.  
    Error creating bean with name 'FaultService': Injection of resource dependencies failed;
  3.  
    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:
  4.  
    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

  1.  
    <dependency>
  2.  
    <groupId>org.mybatis.spring.boot</groupId>
  3.  
    <artifactId>mybatis-spring-boot-starter</artifactId>
  4.  
    <version>${mybatis.spring.boot.version}</version>
  5.  
    </dependency>
  6.  
    <dependency>
  7.  
    <groupId>com.baomidou</groupId>
  8.  
    <artifactId>mybatis-plus-boot-starter</artifactId>
  9.  
    <version>3.4.2</version>
  10.  
    </dependency>

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

解决方案

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhigeb
系列文章
更多 icon
同类精品
更多 icon
继续加载