MybatisPlus为何可以不用@MapperScan详解

 更新时间:2023年04月03日 10:39:33   作者:朱小斌  
这篇文章主要给大家介绍了关于MybatisPlus为何可以不用@MapperScan的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用MybatisPlus具有一定的参考学习价值,需要的朋友可以参考下

为什么在使用mybatis-plus没有在启动类加@MapperScan也可以扫描mapper生成代理

springboot 在引入了  mybatis-plus-boot-starter ,在这个启动包的spring.factories 文件里面的 MybatisPlusAutoConfiguration

在springboot 启动的时候会被spring扫描到

MybatisPlusAutoConfiguration 是一个配置类,里面的内部类 MapperScannerRegistrarNotFoundConfiguration 通过@Import 导入了类 AutoConfiguredMapperScannerRegistrar 这个类 实现了ImportBeanDefinitionRegistrar 接口

在spring 启动的时候会调用 registerBeanDefinitions 方法 里面会往spring里面注册MapperScannerConfigurer 这个bean,这个是mybatis整合spring,扫描mapper的具体实现

这里可以看出来mybatisPlus默认只扫描@Mapper注解。扫描的包来自AutoConfigurationPackages.get(this.beanFactory);

  这里可以看出扫描的包来自AutoConfigurationPackages.BasePackages 里面 , 然后看上面的图发下 这个包 好像跟@EnableAutoConfiguration 注解有关系。

  @AutoConfigurationPackage 又通过 @Import 导入了 Registrar 类

 然后在spring启动的时候就会走道这里

可以看出在@AutoConfigurationPackage  注解没有配置包名的时候,packageNames 的值就是注解所在类的包名

然后 AutoConfigurationPackages.register

这里会把扫描的包名,通过构造方法设置进去,并且在没有加入spring的情况下加入spring。

到这里就找到的mybatis 在没有配置MapperScan时 扫描的包名了。

总结

到此这篇关于MybatisPlus为何可以不用@MapperScan的文章就介绍到这了,更多相关MybatisPlus不用@MapperScan内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在java中判断两个浮点型(float)数据是否相等的案例

    在java中判断两个浮点型(float)数据是否相等的案例

    这篇文章主要介绍了在java中判断两个浮点型(float)数据是否相等的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Spring Boot如何在加载bean时优先选择我

    Spring Boot如何在加载bean时优先选择我

    这篇文章主要介绍了Spring Boot如何在加载bean时优先选择我,在 Spring Boot 应用程序中,我们可以采取三种方式实现自己的 bean 优先加载,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • Spring Boot Actuator监控的简单使用方法示例代码详解

    Spring Boot Actuator监控的简单使用方法示例代码详解

    这篇文章主要介绍了Spring Boot Actuator监控的简单使用,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Java实现简易生产者消费者模型过程解析

    Java实现简易生产者消费者模型过程解析

    这篇文章主要介绍了Java实现简易生产者消费者模型过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 在navicat中导入mysql数据库详细步骤(即.sql后缀的数据库)

    在navicat中导入mysql数据库详细步骤(即.sql后缀的数据库)

    Navicat是MySQL非常好用的可视化管理工具,功能非常强大,能满足我们日常数据库开发的所有需求,下面这篇文章主要给大家介绍了关于如何在navicat中导入mysql数据库(即.sql后缀的数据库)的相关资料,需要的朋友可以参考下
    2023-04-04
  • Java使用Filter实现登录验证

    Java使用Filter实现登录验证

    本文主要介绍了Java使用Filter实现登录验证,Filter类似于门卫,你在进入之前门卫需要盘查你,身份合法进入,身份不合法拦截,感兴趣的可以了解一下
    2023-11-11
  • Spring Cloud Eureka 注册与发现操作步骤详解

    Spring Cloud Eureka 注册与发现操作步骤详解

    这篇文章主要介绍了Spring Cloud Eureka 注册与发现操作步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • java动态代理和cglib动态代理示例分享

    java动态代理和cglib动态代理示例分享

    这篇文章主要介绍了java动态代理和cglib动态代理示例,JDK1.3之后,Java提供了动态代理的技术,允许开发者在运行期间创建接口的代理实例,下面我们使用示例学习一下
    2014-03-03
  • Spring Boot从Controller层进行单元测试的实现

    Spring Boot从Controller层进行单元测试的实现

    这篇文章主要介绍了Spring Boot从Controller层进行单元测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Java WindowBuilder 安装及基本使用的教程

    Java WindowBuilder 安装及基本使用的教程

    这篇文章主要介绍了Java WindowBuilder 安装及基本使用的教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论