前言
在Spring中想要使用注入形式调用Mybatis就需要把Mybatis接口交给Spring管理,但是在Spring容器里,接口不能实例化,那Spring是如何整合的呢?整合要点:
1.通过@import使用MapperScannerRegistrar注册一个ClassPathMapperScanner,在容器初始化时mapper接口会被在ClassPathMapperScanner通过doScan扫描注册mapper,通过修改BeanDefinition把mapper接口改成BeanFactory。
2.在getBean的时候,调用BeanFactory的getObject方法,创建动态代理。
3.在调用方法的时候,把方法对象封装成一个MapperMethod对象,调用execute方法执行。