MapperScanConfig
时间: 2023-11-03 22:51:58 浏览: 94
MapperScanConfig是一个配置类,用于配置MapperScan注解的使用。通过在配置类上添加MapperScan注解,并指定要扫描的包路径,可以自动扫描并注册MyBatis的Mapper接口到Spring容器中。
在MapperScanConfig类中,可以使用@MapperScan注解来配置MapperScan的使用方法。这个注解极大地简化了使用MyBatis的成本,不需要在每个Java接口上添加@Mapper注解,也不需要通过SqlSessionTemplate.getMapper(PersonDao.class)获取代理对象。而是可以直接通过@Autowired在需要使用的地方获取到代理对象,因为@Autowired是从Spring容器中获取对象,获取到的对象肯定是代理对象。
@MapperScan注解是通过解析ClassPathMapperScanner类来实现的。在ClassPathMapperScanner的doScan方法中,会扫描指定包路径下的Java类,并将其注册为MyBatis的Mapper接口的Bean定义。
同时,MapperScanConfig类实现了BeanDefinitionRegistryPostProcessor接口,所以Spring会调用它的postProcessBeanDefinitionRegistry方法。在该方法中,会创建一个ClassPathMapperScanner对象,并设置一些属性,如要添加到配置中的标记接口、SqlSessionFactory、SqlSessionTemplate等。然后通过调用scanner.scan方法,将指定包路径下的类扫描并注册为Bean定义。
总之,MapperScanConfig是一个配置类,用于配置MapperScan注解的使用,通过自动扫描并注册MyBatis的Mapper接口到Spring容器中,简化了MyBatis的使用。