mybatis整合spring原理流程
结合spring的容器初始化过程方便了解mybatis整合spring原理流程:
- 关键点就是@MapperScan注解通过Import方式向容器中注入了MapperScannerConfigurer(他实现了BeanDefinitionRegistryPostProcessor),在执行工厂的后置处理器时执行了MapperScannerConfigurer的注册beanDefinition的方法,而注册进去的beanDefinition被修改为MapperFactoryBean(一种工厂bean),且构造方法传入之前bean的class名
- 当实例化时工厂bean通过getObject方法,其中解析了mapper相关方法注解和xml配置得到一个对应mapper的代理对象放到容器中;
详细看看流程图:
整合原理视频参考:https://www.bilibili.com/video/BV1QE411N7kP?p=34