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

  • 相关阅读:
    MQTT-SN协议乱翻之实现要点
    MQTT-SN协议乱翻之功能描述
    NUnit单元测试
    NHibernate多对多关联映射的实现
    Windows Phone 8 开发初体验
    ASP.NET MVC概述
    Entity Framework多对多关联映射的实现
    C#通过ODAC访问Oracle12c
    64位Win8系统下安装Oracle12c
    C# 异步下载文件
  • 原文地址:https://www.cnblogs.com/hanease/p/14520609.html
Copyright © 2020-2023  润新知