Spring整合MyBatis的原理剖析

48 阅读1分钟

整合包里提供了一个SqlSessionFactoryBean和一个扫描Mapper的配置对象,SqlSessionFactoryBean一旦被实例化,就开始扫描Mapper并通过动态代理产生Mapper的实现类存储到Spring容器中。相关的有如下四个类:

  1. SqlSessionFactoryBean:需要进行配置,用于提供SqlSessionFactory;

  2. MapperScannerConfigurer:需要进行配置,用于扫描指定mapper注册BeanDefinition;

  3. MapperFactoryBean:Mapper的FactoryBean,获得指定Mapper时调用getObject方法;

  4. ClassPathMapperScannerdefinition.setAutowireMode(2) 修改了自动注入状态,所以 MapperFactoryBean中的setSqlSessionFactory会自动注入进去。