Mybatis在Spring-boot中自动配置的底层源码分析

前言:在Spring-boot结合Mybatis,我们只需要配置一些数据库连接的基本信息,写好Mapper和Dto就可以跑起来了。但是它是如何帮我们完成自动配置,并且执行我们的sql语句的呢?我们一起来看看吧。

spring-boot.version:2.3.7.RELEASE
mybatis-spring-boot-starter2.1.4
简陋的示意图
MyBatisAutoConfiguration类是Mybatis的自动配置程序,在Mybatis启动时,开始自动配置。

第一步:启动核心MyBatisAutoConfiguration&&SqlSessionFactory

MyBatisAutoConfiguration会在有SqlSessionFactory类的情况下开始。
在这里插入图片描述
在这里插入图片描述

第二步(合并图中第二步和第三步):拉取配置和Mapper.xml(附:SqlSeesion)

SqlSessionFactory会调用Configuration类,Configuration类会读取application.properties来获取Mybatis配置信息
在这里插入图片描述
SqlSessionFactory还会尝试去扫描mapper.xml的位置。
在这里插入图片描述
而SqlSessionFactory会创建SqlSession(默认DefaultSqlSession)。
在这里插入图片描述
在这里插入图片描述
SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)。Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。其中输入参数和输出结果的映射类型包括java的简单类型、HashMap集合对象、POJO对象类型。
在这里插入图片描述

第三步(在图中为第四步与第五步):怎样实现Mapper接口

MyBatisAutoConfiguration去调用MapperScannerConfigurer去扫描有哪些你写的@Mapper类,创建并由MapperProxy去实现Mapper接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样我们配置的文件就和Mybatis产生关联啦。

(本人技艺不精,学识肤浅,若有错漏,欢迎指正)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值