spring整合mybatis 原理
2024-10-28 14:42:40 0 举报
spring整合mybatis 原理
作者其他创作
大纲/内容
使用@MapperScan注解,导入需要扫描的包
设置SqlSessionFactory为spring的bean
@MapperScan使用@Import导入了MapperScannerRegistrar
修改过的bean定义能被创建实例
主要是依靠spring的属性注入的特点来完成Configuration的扩容
afterPropertiesSet();
1、扫描mapper接口,获取接口的bean定义,修改属性beanClass为MapperProxyBean,这样的bean定义可以被创建实例2、将SqlSessionFactory注册为spring的bean,完成配置文件的加载,解析
这样做的目的:方便从spring容器中拿到一些mybatis的环境(比如:数据源,事务)
1
对每个bean定义修改BeanClass属性
把传入的包下面的所有类,接口注册为bean定义
将事务委托给spring的事务来管理
调用registerBeanDefinitions
这里使用factorybean来得到sqlSessionFactory
这里是factorybean,调用的时候才会执行getObject()--->getBean
2
由于MapperScannerRegistrar实现了ImportBeanDefinitionRegistrar
从spring容器中获取事务
执行doScan()
SqlSessionFactoryBean实现了InitializingBean所以在初始化之后会调用afterPropertiesSet()
0 条评论
回复 删除
下一页