随记MyBatis中的@Mapper接口的加载原理

Posted 波波烤鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随记MyBatis中的@Mapper接口的加载原理相关的知识,希望对你有一定的参考价值。

  最近有小伙伴问到MyBatis中的@Mapper接口的加载原理,头脑里面首先想到的是代理模式,但是具体的加载过程想不出来,于是就翻了下源码,顺便记录分享给大家。

@Mapper接口

  首先我们要清楚Mapper接口的作用,这里需要和@MapperScan一块来了解。在整合SpringBoot项目的时候,我们可以通过@MapperScan来指定我们存放Mapper接口的包,启动的时候就会去对应的目录下去扫描这个包下的接口,而@Mapper接口是更细粒度的直接修饰在Mapper接口的头部。比如:

  然后@Mapper是在MyBatis中就提供的,但是在MyBatis中并没有应用到。

@Mapper接口加载

  @Mapper接口是在MyBatis整合到SpringBoot项目中时会提供对应的加载。在提供的自动配置类MybatisAutoConfiguration
中就有我们需要的答案。

通过代码也能很清楚的看到操作的流程。

以上是关于随记MyBatis中的@Mapper接口的加载原理的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis的原理分析1(@Mapper是如何生效的)

MyBatis 中 Mapper 接口的使用原理

mybatis mapper加载原理

Mybatis中@Mapper与@MapperScan配置及注入原理解析

mybatis 中一个接口可以对应多个mapper吗

Mybatis学习系列Mapper接口动态代理