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-sample-crud: 完整 CRUD 示例 mybatis-plus-sample-wrapper: 条件构造器示例 mybatis-plus-sample-pagination: 分页功能示例 mybatis-plus-sample-active-record: ActiveRecord示例 mybatis-plus-...
mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...
mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中...《MyBatis-Plus入门文档》主要介绍了MyBatis-Plus入门使用,以及关于mybatis-plus的更多介绍及特性,感兴趣的可以下载学习一下
mybatis-plus-3.0 源码(mybatis-plus-3.0.zip)
mybatis-plus-3.0依赖包
赠送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-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-...
赠送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-...
赠送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源码(mybatis-plus-3.5.1.zip)
赠送jar包:mybatis-plus-core-3.1.0.jar; 赠送原API文档:mybatis-plus-core-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-core-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-core-3.1.0.pom; ...
赠送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在框架中的重要性越来越高,功能逐步强大,为了避免工作中可能出现的坑,阅读源码是重要解决方法
赠送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-...
赠送jar包:mybatis-plus-annotation-3.1.0.jar; 赠送原API文档:mybatis-plus-annotation-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.1.0-sources.jar; 赠送Maven依赖信息文件: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
内含资源: DmJdbcDriver18.jar junit-4.10.jar mybatis-3.5.0.jar mybatis-plus-2.0.1.jar mybatis-plus-3.1.0.jar mybatis-plus-annotation-3.1.0.jar mybatis-plus-core-3.1.0....mybatis-plus-extension-3.1.0.jar
MyBatis-Plus代码生成器
mybatis-plus-extension-3.4.0.jar
项目中的代码截取自mybatis-plus-3.5项目源码中分布式ID的实现,主要是内容是Mybatis-plus项目中IdentifierGenerator接口的两个实现类DefaultIdentifierGenerator和ImadcnIdentifierGenerator的源码,还有IdWorker工具...