1. MapperScannerConfigurer 作用
MapperScannerConfigurer 是为了解决 MapperFactoryBean 繁琐而生的,有了 MapperScannerConfigurer 就不需要我们去为每个映射接口去声明一个bean了。提高了开发的效率。
2. MapperScannerConfigurer 源码的配置主要属性
basePackage:这个属性就是映射接口的包,这个包里面的所有的接口扫描到。
sqlSessionFactory:这个属性通过自动装配的属性,而不需要我们去配置这个属性(如果配置了这个属性会出问题,后面给图)。
sqlSessionFactoryBeanName:为了将我们的 sqlSessionFactory 注入给它这个类。
annotationClass:自定义一个注解加大排除我们所需要的Mapper接口,(ps:首先我们扫描这个包可能有不需要映射的接口,那我们就可以通过注解(自定义的注解)的方式选出我们所需要的,没加注解的就不是这个类所需要的)。
示例 1:
/* 定义MyBatis的映射扫描, 等同于<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> */ @Bean public MapperScannerConfigurer getMapperScannerConfigurer(){ MapperScannerConfigurer msc = new MapperScannerConfigurer(); //等同于<property name="basePackage" value="com.itheima.dao"/> msc.setBasePackage("com.itheima.mapper"); // "com.itheima.mapper" 这个包里面的所有的接口扫描到 return msc; }
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring。
可以使用一个 MapperScannerConfigurer , 它将会查找类路径下的映射器并自动将它们创建成 MapperFactoryBean。
在 MyBatis-Spring 中提供了一个转换器 MapperScannerConfig 它可以将接口转换为Spring容器中的Bean
mybatis-spring提供了 MapperScannerConfigurer 这个类,它将会查找类路径下的映射器并自动将它们创建成 MapperFactoryBean。
MapperScannerConfigurer 是 spring和mybatis 整合的 mybatis-spring 的jar包中提供的一个类。
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.mybatis.spring.sample.mapper" /> </bean>
这段配置会扫描 org.mybatis.spring.sample.mapper 下的所有接口,然后创建各自接口的动态代理类。这样,Service就可以注入dao的实例了。
MapperFactoryBean
REF
https://blog.csdn.net/qq_40863603/article/details/86070139
https://www.cnblogs.com/yangj-Blog/p/12991861.html
https://vimsky.com/examples/detail/java-class-tk.mybatis.spring.mapper.MapperScannerConfigurer.html
https://blog.csdn.net/weixin_30871701/article/details/95013149