【大致原理】
Mybatis利用反射,根据mapper接口与mapper.xml映射文件生成接口的一个实现类代理对象,然后将该对象通过MapperScannerConfigurer扫描,装配进IOC
MapperScannerConfigurer的具体实现为:
spring-context包下的类:
org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(String... basePackages)
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(String basePackage);
最终存入:LinkedHashSet<BeanDefinition>
【核心API】
1.org.mybatis.spring.SqlSessionFactoryBean -->(mybatis-spring包) 2.org.mybatis.spring.mapper.MapperScannerConfigurer -->(mybatis-spring包) 3.org.springframework.context.annotation.ClassPathBeanDefinitionScanner 4.org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider
【源码】
【操作步骤】
0.加入整合依赖:mybatis-spring
1.配置:jdbc.properties 数据源相关信息,
2.创建Spring与Mybatis整合的xml配置文件,并在Spring配置文件中加载:jdbc.properties
3.在整合xml中配置数据源
4.配置整合类:SqlSessionFactoryBean
# 指定数据源
# 指定 xxxMapper.xml映射文件位置:mapperLocations
3 指定Mybatis全局配置文件位置:configLocation [可选哦]
5.配置:MapperScannerConfigurer