本文主要是介绍MyBatis @Mapper扫描 和 @MapperScan的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MyBatis @Mapper扫描 和 @MapperScan的实现
- @Mapper
- @MapperScan
@Mapper
如果启用了Mybatis的自动配置功能,所有通过@Mapper标注的接口都会被自动扫描并注册为Bean。这些事通过下面的类实现的。
org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.AutoConfiguredMapperScannerRegistrar
@MapperScan
MyBatis自动配置功能并没有使用@MapperScan注解。但在某些场景下使用@MapperScan会更加方便,比如我们使用了mybatis-generator自动生成了Mapper类,但是这些Mapper类本身并不添加@Mapper注解,所以需要我们手动添加。而且如果因为数据库表字段调整等因素,导致我们需要使用mybatis-generator重新生成Mapper文件的时候,我们都需要重新添加@Mapper注解。这时候使用@MapperScan注解就能帮我们规避这个问题。
我们可以通过制定扫描包、扫描注解、扫描接口等方式来查找Mapper类并注册为Bean。所有这些是通过以下类实现的:
org.mybatis.spring.annotation.MapperScannerRegistrar
AutoConfiguredMapperScannerRegistrar和MapperScannerRegistrar都是ImportBeanDefinitionRegistrar的实现类。
这篇关于MyBatis @Mapper扫描 和 @MapperScan的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!