Spring整合MyBatis原理
- 整合包中(上篇文章中的配置文件,文章传送门:Spring整合第三方框架-MyBatis整合Spring实现-CSDN博客)提供了SqlSessionFactoryBean和一个扫描Mapper的配置对象,SqlSessionFactoryBean一旦被实例化,就开始扫描Mapper并通过动态代理产生Mapper的实体类并存储到Spring容器中,相关有如下四个类。
- SqlSessionFactoryBean:需要进行配置,用于提供SqlSessionFactory
- MapperScannerConfigurer:需要进行配置,用于扫描指定mapper包,注册BeanDefinition
- MapperFactoryBean:Mapper的FactoryBean,获取指定Mapper时调用getObject方法
- ClassPathMapperScanner:definition.setAutowireMode(2)修改了自动注入注入状态,所以MapperFactoryBean中的SqlSessionFactory会自动注入进去
ps:对于这段知识的讲解,都是根据源码来进行讲解,我听得比较似懂非懂