从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制

从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制


当XMLMAPPER文件比较少的时候我们会这样进行手动配置


当XMLMAPPER文件比较多的时候我们就采用自动扫描包的方式添加BEAN


从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制_第1张图片

MAPPERSCANNERCONFIGURER原理参考如上链接

实际上就是覆盖了SPRING自带的包扫描doScan方法,重新定义了MYBATIS所需要的BEAN


从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制_第2张图片


在结合SPRING使用XML MAPPER接口的时候

@Autowired

private  UserDao userDao;

等同于

如上图所示,我们注册的UserDao实际上是注册了一个MapperFactoryBean,当我们使用Autowired自动的注入的时候,实际上也就是使用了ApplicationContext的实现的getBean方法,getBean方法最终会调用如下的getObject方法来获取一个Dao的实例对象。


从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制_第3张图片

你可能感兴趣的:(从MapperScannerConfigurer看MyBatis自动扫描Mapper的机制)