zoukankan      html  css  js  c++  java
  • springboot不加载mapper文件问题解析

    1. 场景描述

    启动的时候报”springboot available: expected at least 1 bean which qualifies as autowire candidate“。

    2. 解决方案

    该错误一眼看过去,简单说就是bean无效,无法注入,使用的@Autowired或者@Resource注入bean有问题。

    才想起来昨天从其他地方新加入一个mapper文件,为了区分现在的mapper,就单独放到一个文件夹里了。

    2.1 问题定位

    (1)首先确认新建文件夹是否启动类Application在同级或者下级目录,检查后发现在,那为什么没有加载?

    (2)然后检查了启动类上的标签:@SpringBootApplication

    看了下@SpringBootApplication源码,其中@ComponentScan就是扫描注解,默认是扫描当前类下的package。将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中。

    但是我们使用的mybatis-genarator自动生成的Mapper和mapper.xml,是没有用@Repository标签,我们使用的mapperLocations的方式指定包加载进来的,所以说新加的文件夹是里面的mapper文件是不会自动加入到IOC容器的。

    2.2 问题解决

    在启动类上新增标签@MapperScan("com.laowang.newmapper")或者使用mapperLocations,将新的mapper文件夹加入进来就会自动扫描到IOC中了。


  • 相关阅读:
    Redis指令(2) ------String
    Redis指令(1) ------常用指令
    Redis数据类型
    Python set集合
    Python random 模块
    Python random 模块
    Python time 模块
    Python sys模块
    Python 递归函数
    Python 局部变量和全局变量
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11182693.html
Copyright © 2011-2022 走看看