spring是怎样和mybatis继承的?
在idea里点mapper.queryOne()直接跳到了接口或xml,它究竟是怎样利用jdbc执行的?
我直接调用mapper.queryOne是怎么使用的sqlsession?怎么去connect的?
mybatis是怎样根据mapper找到对应的sql语句的?
看完本文,你将茅塞顿开!
前置知识:需要了解spring和mybatis的本身的原理
对beanDefinition进行扩展(spring部分)
首先是有一个类MapperScannerConfigurer,实现了BeanDefinitionRegistryPostProcessor,并重写了postProcessBeanDefinitionRegistry方法。
spring在加载beanDefinition的时候会调用这个方法,这个方法把所有配置中mybatis的mapper包扫描一遍,修改包里每个接口的beanClass为MapperFactoryBean.class
一路点scan->doscan->processBeanDefinitions
生成bean(spring部分)
由于上一步对beanDefinition已经做了修改ÿ