@MapperScan注解是spring和mybatis整合的关键注解,这个注解的作用也简单,就是为了把当前mapper接口,放到spring容器中,但是这篇笔记想要记录的是,@MapperScan注解在1.3版本和2.0版本中的区别; 这个注解是放在mybatis-spring这个jar包中
在1.3版本中,通过@Import注解引入了一个bean:
MapperScannerRegistrar
这里可以看到,这个bean是ImportBeanDefinitionRegistrar的实现类,spring源码:@Import注解 在这篇博客中有介绍,这个接口的作用,简单来说,我们实现这个接口之后,可以拿到BeanDefinitionRegistry对象,可以自己去声明一个beanDefinition对象,放到beanDefinitionMap中,然后spring容器会帮我们完成初始化的操作
我们接着来看实现类中的实现方法
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
AnnotationAttributes annoAtt