zoukankan      html  css  js  c++  java
  • (13)springboot不加载mapper文件问题解析-copy

    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中了。

  • 相关阅读:
    koa2 nginx 服务器配置
    Spring Cloud 中OpenFeign的使用(二)
    Spring Cloud中OpenFeign的使用(一)
    Spring Cloud Alibab Sentinel服务端搭建
    asp.net core 读取 appsettings.json 节点值
    c# – AuthenticationHeaderValue与NetworkCredential
    元气
    艾维利时间管理法
    BPM/OA/审批流/工作流
    消息队列
  • 原文地址:https://www.cnblogs.com/hanease/p/14520609.html
Copyright © 2011-2022 走看看