MyBatis-Spring MapperScannerConfigurer

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

posted @ 2021-12-27 21:21  emanlee  阅读(934)  评论(0编辑  收藏  举报