简单记一下spring整合mybatis的原理

spring与mybatis是日常开发工作中两个很流行的框架,这里简单记录一下这两个框架的整合原理。

首先明确一点,spring框架扫描的对象是类,在项目启动的时候,spring会根据配置文件扫描项目中的目标类并将其解析为一个一个的BeanDefinition记录下来,然后再通过BeanDefinition反射构建出真正的对象进行自动装配。

而mybatis框架扫描的对象的接口,先将dao的接口注册到MapperRegister中,将mapper.xml的信息解析成一个一个的MapperStatemnet并记录下来,后续通过获取到Mapper代理对象,执行方法时通过接口类+方法名获取到对应的mapperStatement,最终就可以执行目标的sql并返回结果。

整合的思想就是将mybatis已经处理好的mapper对象注册到spring中,使其也成为一个正常的beanDefinition,这样当spring需要装配Mapper对象的时候就能装配进正确的对象了。

@MapperScan

mybatis在mybatis-spring包里提供了@MapperScan注解,该注解上又有了一个**@Import({MapperScannerRegistrar.class})** 标识,核心就在MapperScannerRegistrar这个类中,下面我们也会重点看它。
在这里插入图片描述

MapperScannerRegistrar

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
自此,spring就成功的将mybatis整合好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值