`
eric_weitm
  • 浏览: 242701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mybatis-plus-3.0 通用crud实现原理

    博客分类:
  • java
 
阅读更多

mybatis-plus-3.0 通用crud实现原理

mapper创建流程(@MapperScan 具体实现细节)

1》factory创建之后回调各个BeanFactoryPostProcessor

2》ConfigurationClassPostProcessor#processConfigBeanDefinitions 处理@Configuration注解

3》 依次处理 application(@SpringBootConfiguration)、@ComponentScan(会处理所有注入的bean)

4》 处理各个Configuration

5》 处理各种 ImportSelector 和ImportBeanDefinitionRegistrar

6》 MapperScannerRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar)解析@MapperScan,并且把每一个接口的工厂类设置为org.mybatis.spring.mapper.MapperFactoryBean

 

7》 factory 创建各个bean、设置属性、回调InitializingBean(开始注入逻辑)

8》 org.mybatis.spring.mapper.MapperFactoryBean<T>(DaoSupport).afterPropertiesSet

9> com.baomidou.mybatisplus.core.MybatisConfiguration.addMapper plus接管了mapper的管理职责

10》 MybatisMapperAnnotationBuilder.parse plus 通用的crud的注入逻辑 

a: AbstractSqlInjector.inspectInject主逻辑:

获取方法列表 getMethodList 

依次调用 inject 即injectMappedStatement(生成mybatis的动态xml脚本,注入不同的statement)

 

b: parseStatement:解析注解里的sqlSource(自定义的基于注解的动态注入)

c: parsePendingMethods: 处理还没有解析完的method

 

总结(初始化的时候注入动态代理的接口): 创建bean + 注入通用crud

app-> componentScan-> configuration->ImportBeanDefinitionRegistrar

MapperScannerRegistrar -> afterPropertiesSet->MybatisMapperAnnotationBuilder.parse

 

plus hack的类有 MybatisConfiguration、MybatisMapperRegistry、核心逻辑是MybatisMapperAnnotationBuilder.parse

 

分享到:
评论

相关推荐

    mybatis-plus-core-3.0.7.1

    mybatis-plus-core-3.0.7.1,

    MyBatis-Plus 的官方示例(mybatis-plus-samples-master.zip)

    mybatis-plus-sample-crud: 完整 CRUD 示例 mybatis-plus-sample-wrapper: 条件构造器示例 mybatis-plus-sample-pagination: 分页功能示例 mybatis-plus-sample-active-record: ActiveRecord示例 mybatis-plus-...

    mybatis-plus-3.0.zip

    MyBatis-Plus 是 MyBatis 的一个扩展插件,主要目标是简化常见的 CRUD(创建、读取、更新、删除)操作,它提供了一系列便捷的 CRUD 方法,使得开发者无需编写大量重复的 SQL 代码,提高了开发效率。这个 "mybatis-...

    mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip

    mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...

    baomidou-mybatis-plus-3.0.zip

    Mybatis-Plus3.0版本在前一版本的基础上进一步优化了性能,增加了更多实用特性,使其在现代Java开发中的地位日益凸显。 首先,Mybatis-Plus的核心功能之一是提供了丰富的API,包括单表操作(如增删查改)、条件构造...

    mybatis-plus-3.0

    在本压缩包"mybatis-plus-3.0"中,包含了MyBatis-Plus 3.0版本的完整组件。 MyBatis-Plus的核心功能包括: 1. **自动化CRUD操作**:通过简单的配置或注解,即可实现对数据库的增删改查操作,无需编写大量重复的SQL...

    MyBatis-Plus入门+MyBatis-Plus文档手册 中文pdf高清版.rar

    mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中...《MyBatis-Plus入门文档》主要介绍了MyBatis-Plus入门使用,以及关于mybatis-plus的更多介绍及特性,感兴趣的可以下载学习一下

    mybatis-plus 源码(mybatis-plus-3.0.zip)

    通过阅读MyBatis-Plus 3.0的源码,我们可以深入了解其实现原理,学习如何设计和优化数据库操作框架,对于提升Java开发者的数据库操作能力大有裨益。同时,对于熟悉MyBatis-Plus源码的开发者来说,也更容易排查和解决...

    mybatis-plus 实践及架构原理

    Mybatis-Plus是一款在Mybatis基础上进行增强的优秀工具,它简化了单表的CRUD操作,提高了开发效率,且对原有的SQL操作不做改变。Mybatis-Plus的实践及架构原理主要包含以下几个方面的知识点: 1. Mybatis-Plus的...

    mybatis-plus-boot-starter-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-boot-starter-3.5.1.jar; 赠送原API文档:mybatis-plus-boot-starter-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-...

    mybatis-plus3.5.2 jar包

    mybatis-plus3.5.2常用jar包,mybatis-plus-3.5.2.jar、mybatis-plus-annotation-3.5.2.jar、mybatis-plus-core-3.5.2.jar、mybatis-plus-extension-3.5.2.jar、mybatis-plus-generator-3.5.2.jar和源码包mybatis-...

    mybatis-plus源码(mybatis-plus-3.5.1.zip)

    此源码包`mybatis-plus-3.5.1.zip`包含了MyBatis-Plus 3.5.1版本的全部源代码,有助于我们深入理解其内部实现机制和工作原理。 MyBatis-Plus的主要功能包括: 1. **CRUD操作**:MyBatis-Plus提供了简化版的CRUD...

    mybatis-plus-extension-3.5.1-API文档-中英对照版.zip

    赠送jar包:mybatis-plus-extension-3.5.1.jar; 赠送原API文档:mybatis-plus-extension-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-extension-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-plus-3.0.rar

    MyBatis-Plus 3.0 版本在前一版本的基础上进行了诸多改进和完善,旨在提供更加高效和便捷的ORM解决方案。 1. **核心功能**: - **自动填充**: MP提供了实体类字段的插入、更新时的自动填充功能,如创建时间和修改...

    SpringBoot集成MyBatis-Plus实现国产数据库适配.docx

    首先,需要在 pom.xml 文件中添加 MyBatis-Plus 依赖项,然后 configure MyBatis-Plus 的基本配置项,最后,使用 MyBatis-Plus 实现 CRUD 操作。 通过使用 SpringBoot 集成 MyBatis-Plus,可以快速实现国产数据库...

    mybatis-plus-annotation-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-plus自定义模板.zip

    Mybatis-Plus是一款基于Mybatis和Spring Boot的轻量级扩展框架,它简化了对数据库的基本操作,如CRUD(创建、读取、更新、删除)等。在默认情况下,Mybatis-Plus提供了丰富的代码生成器,可以帮助开发者快速生成实体...

    mybatis-plus快速入门项目-mybatis-plus基本操作大全-附带sql+项目文档

    MyBatis-Plus提供了自动化的CRUD操作,包括insert、insertBatch、selectOne、selectList、update、delete等方法,无需手动编写SQL。 6. **条件构造器(QueryWrapper)** QueryWrapper是MyBatis-Plus的核心组件之...

    mybatis-plus-boot-starter-3.1.0-API文档-中文版.zip

    赠送jar包:mybatis-plus-boot-starter-3.1.0.jar; 赠送原API文档:mybatis-plus-boot-starter-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-...

    mybatis-plus所有依赖包

    适用于无maven的spring项目使用。包含以下依赖包: ...mybatis-plus-3.5.1.jar mybatis-plus-annotation-3.5.1.jar mybatis-plus-core-3.5.1.jar mybatis-plus-extension-3.5.1.jar mybatis-spring-2.0.6.jar

Global site tag (gtag.js) - Google Analytics