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 @   emanlee  阅读(1359)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示