10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这个问题好奇怪,

出现这个错误是通用Mapper初始化的错误,排查的方向就是往这个方向,可能的情况有以下几种:

1.jar包冲突

<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.3.9</version>
</dependency>
<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.0</version>
</dependency>
如图所示这里有两个tk.mybatis通用Mapper的包了,所以springboot不知道该初始化哪个

<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.0</version>
</dependency>
这里使用这个包,重启后运行正常

2,MapperCan 扫包配置错误

@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.*.dao")
@ComponentScan("com.example.demo.*")
public class DemoApplication extends SpringBootServletInitializer{
之前配置的是

@MapperScan(basePackages = "com.example.demo.*.dao")
应该改成

@MapperScan(basePackages = "com.example.demo.*.dao.*")
我思考了以下应该是扫包的话是扫很多个包,所以应该是以*结尾的

这样重启后正常
--------------------- 
作者:跃跃的呢 
来源:CSDN 
原文:https://blog.csdn.net/y2446421841/article/details/80566082 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

看起来好像BaseSelectProvider 需要一个无参的构造器,但是查看了BaseSelectProvider源码,确实是没有的,怎么办呢? 感觉好像是版本问题,

 

尝试导入:

import tk.mybatis.spring.annotation.MapperScan;

但是没有这个类,只有另外的一个,但是 那个恰恰是 好像是错误的根源。

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <!--<version>1.1.5</version>-->
            <version>2.0.0</version>
        </dependency>

后面把版本从1.1.5 改成了 2.0.0 就好了, 奇怪了。

 

https://www.jianshu.com/p/71fe3b73479c

https://blog.csdn.net/Dongguabai/article/details/80729563

 

posted on 2018-12-29 17:24  CanntBelieve  阅读(8380)  评论(0编辑  收藏  举报