org.mybatis.spring.mapper.ClassPathMapperScanner和tk.mybatis.spring.annotation.MapperScan

释义:

org.mybatis.spring.mapper.ClassPathMapperScanner和tk.mybatis.spring.annotation.MapperScan是两个不同的注解,用于扫描mybatis的mapper接口并自动将其注入到Spring容器中。

  1. org.mybatis.spring.mapper.ClassPathMapperScanner

这是MyBatis官方提供的注解,它是一个类路径Mapper扫描器,用于自动扫描指定包下的所有Mapper接口,并将它们注入到Spring容器中。

通过该注解,可以指定要扫描的包路径和Mapper的注入方式,如下所示:

@Configuration
@MapperScan("com.example.mapper")
public class MyBatisConfig {

}

 

上面的代码表示将com.example.mapper包下的所有Mapper接口注入到Spring容器中。

  1. tk.mybatis.spring.annotation.MapperScan

这是tk.mybatis提供的注解,它也是用于扫描Mapper接口并自动注入到Spring容器中。与org.mybatis.spring.mapper.ClassPathMapperScanner不同的是,它支持使用Mapper接口的注解来自定义SQL语句。

通过该注解,可以指定要扫描的包路径、Mapper的注入方式和Mapper接口上的注解,如下所示:

@Configuration
@MapperScan(basePackages = "com.example.mapper", annotationClass = MyMapper.class)
public class MyBatisConfig {

}

 

 上面的代码表示将com.example.mapper包下所有具有@MyMapper注解的Mapper接口注入到Spring容器中。这样,我们就可以在Mapper接口中使用自定义的SQL语句了。

主要区别:

  1. 扫描方式不同

org.mybatis.spring.mapper.ClassPathMapperScanner是通过扫描指定包路径下的所有Mapper接口,自动将它们注入到Spring容器中。

而tk.mybatis.spring.annotation.MapperScan则支持扩展Mapper接口,即在Mapper接口中添加注解来自定义SQL语句,然后通过扫描指定包路径下所有具有指定注解的Mapper接口,并将它们注入到Spring容器中。

  1. 依赖的包不同

org.mybatis.spring.mapper.ClassPathMapperScanner是MyBatis官方提供的注解,依赖于mybatis-spring包。

而tk.mybatis.spring.annotation.MapperScan是tk.mybatis提供的注解,依赖于tk.mybatis.mapper-spring-boot-starter包。

  1. 扫描效率不同

由于tk.mybatis.spring.annotation.MapperScan支持扩展Mapper接口,需要对Mapper接口进行解析,因此在大规模项目中,扫描效率可能会稍低于org.mybatis.spring.mapper.ClassPathMapperScanner。

综上所述,两者都是用于扫描Mapper接口并自动将其注入到Spring容器中的注解,但是它们的使用方式和功能略有不同,需要根据具体的项目需求来选择使用哪一个。

 

由于项目mybatis相关包引用了 tk.mybatis

使用pagehelper-spring-boot-starter 插件时,默认引用org.mybatis,存在扫描告警

WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.xxx.xxx.xxx]' package. Please check your configuration.

启动类增加mapper扫描:

@MapperScan("com.xxx.xxx")

去除分页插件的依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </exclusion>
    </exclusions>
</dependency>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silence丶你的名字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值