整合包里提供了一个SqlSessionFactoryBean和一个扫描Mapper的配置对象,SqlSessionFactoryBean一旦被实例化,就开始扫描Mapper并通过动态代理产生Mapper的实现类存储到Spring容器中。相关的有如下四个类:
-
SqlSessionFactoryBean
:需要进行配置,用于提供SqlSessionFactory; -
MapperScannerConfigurer
:需要进行配置,用于扫描指定mapper注册BeanDefinition; -
MapperFactoryBean
:Mapper的FactoryBean,获得指定Mapper时调用getObject方法; -
ClassPathMapperScanner
:definition.setAutowireMode(2)
修改了自动注入状态,所以 MapperFactoryBean中的setSqlSessionFactory会自动注入进去。