SpringBoot集成Mybatis时无法扫描Mapper问题

使用mybatis官方提供的starter与SpringBoot做整合

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
</dependency>

在IDE中启动项目没有问题,但当打成JAR启动项目时出现以下异常:

15:51:43.909 [main] DEBUG o.s.b.d.LoggingFailureAnalysisReporter - Application failed to start due to an exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [org.zbt.service.jxc.dao.base.DataDicMapper]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463)
 ............
 org.springframework.boot.starter.dubbo.startup.BootStrap.main(BootStrap.java:15)
2016-11-13 15:51:44.389 ERROR 3349 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter 

由异常可以知道是因为Mapper没有SpringBoot扫描到。
而官方提供的可配置参数只有以几个:

config-location MyBatis xml config file (optional)
mapper-locations    Mapper xml config files (optional)
type-aliases-package    Package to search for type aliases (optional)
type-handlers-package   Package to search for type aliases (optional)
executor-type   Executor type: SIMPLE, REUSE, BATCH (optional)
configuration   A MyBatis Configuration bean

可以看出无法指定Mapper接口的位置。
可以通过在可以被SpringBoot加载到的spring文件中加入以下配置来解决这一个问题:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
          <property name="basePackage" value="org.zbt.service.jxc.dao.base"/>
          <property name="annotationClass" value="org.apache.ibatis.annotations.Mapper"/>
</bean>
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值