mybatis-plus中自动配置的 mapper.xml与java接口映射问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/canyanruxue/article/details/81873496

本来没有mybatis-plus的话,这个工作是通过mybatis-spring的MapperScan来完成的。

Mybatis-plus中的自动配置类MybatisPlusAutoConfiguration.class中有一个静态内部类MapperScannerRegistrarNotFoundConfiguration用于完成这个配置。
这里写图片描述

这个内部类导入了AutoConfiguredMapperScannerRegistrar.class配置类,其实这个配置类也是MybatisPlusAutoConfiguration的静态内部类。
其中核心功能就是下面这个方法
这里写图片描述

通过ClassPathMapperScanner 来扫描包,用于完成映射,ClassPathMapperScanner 是mybatis-spring中的配置类

ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);

如果用Mybatis-plus的自动配置,那么所有的Dao接口必须要用Mapper.class注解,因为Mybatis-plus设置的就为Mapper.class
这里写图片描述

最终会在scanner.registerFilters()这步操作中被添加到includeFilters中。
这里写图片描述

最终被扫描到的类与includeFilters匹配且不与excludeFilters匹配,最终才会筛选出保留的BeanDefinition.

猜你喜欢

转载自blog.csdn.net/canyanruxue/article/details/81873496