通用mapper和mybatis-spring的关系以及与之相似的spring-data-jpa
整合东西到框架里面去就是集成框架的接口类之后进行复写:
public class MapperScannerConfigurer
extends org.mybatis.spring.mapper.MapperScannerConfigurer
从这里看出spring-mybatis本生就具备把mapper生成代理实现类,那么通用mapper就是做了单表的操作的省略,
生成是mybatis-generator
spring-data-jpa:
生成代码+成代理+单表操作省略
<jpa:repositories base-package="com.esteel.web.dao"></jpa:repositories>
ClassPathBeanDefinitionScanner:
private BeanNameGenerator beanNameGenerator = new AnnotationBeanNameGenerator();///在打断点的时候不知用的到底是接口的那个实现类看前面注入的地方
protected Set<BeanDefinitionHolder> doScan(String... basePackages) {
Assert.notEmpty(basePackages, "At least one base package must be specified");
Set<BeanDefinitionHolder> beanDefinitions = new LinkedHashSet<BeanDefinitionHolder>();
for (String basePackage : basePackages) {///////////////////包可以有多个
Set<BeanDefinition> candidates = findCandidateComponents(basePackage);////////////////////////////////获取一个一个mapper
for (BeanDefinition candidate : candidates) {
ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(candidate);
candidate.setScope(scopeMetadata.getScopeName());
String beanName = this.beanNameGenerator.generateBeanName(candidate, this.registry);///在打断点的时候不知用的到底是接口的那个实现类看前面注入的地方
if (candidate instanceof AbstractBeanDefinition) {
postProcessBeanDefinition((AbstractBeanDefinition) candidate, beanName);
}
if (candidate instanceof AnnotatedBeanDefinition) {
AnnotationConfigUtils.processCommonDefinitionAnnotations((AnnotatedBeanDefinition) candidate);
}
if (checkCandidate(beanName, candidate)) {
BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(candidate, beanName);
definitionHolder = AnnotationConfigUtils.applyScopedProxyMode(scopeMetadata, definitionHolder, this.registry);
beanDefinitions.add(definitionHolder);//////////////所有的mapper都加到这个集合
registerBeanDefinition(definitionHolder, this.registry);
}
}
}
return beanDefinitions;
}
相关推荐
Generate mybatis sql based on mybatis interface method name like spring data jpa, with this, you don't have to write most sql for non join query support generate statement with if test Database ...
八、尚硅谷SpringData视频 九、尚硅谷SSSP整合&分页视频 十、尚硅谷Redis视频 十一、 尚硅谷Maven视频 十二、 尚硅谷Shiro视频 十三、 尚硅谷MySQL高级视频 十四、 尚硅谷MyBatis 视频 十五、尚硅谷SSM高级...
第六篇:整合SpringDataJpa] 第七篇:整合Mybatis] 第八篇:通用Mapper与分页插件的集成] 第九篇:整合Lettuce Redis] 第十篇:使用Spring Cache集成Redis] 第十一篇:集成Swagger在线调试] 第十二篇:...
整合SpringDataJpa 整合Mybatis 通用Mapper与分页插件的集成 整合Lettuce Redis 使用Spring Cache集成Redis 集成Swagger在线调试 初探RabbitMQ消息队列 RabbitMQ延迟队列 actuator 服务监控与管理 actuator与spring-...
6. Spring Data Jpa 7. fastJson 8. swagger-ui 9. qiniu 使用说明 1. 在mysql中导入项目的sql文件 2. 将项目中yml配置文件中的数据库配置改为自己的配置 3. 运行项目,输入localhost:8088/login 登录可查看项目接口...
Spring Data JPA 的使用 JPA简单概念 快速上手 基本查询 复杂查询 关联查询 项目源码 模板引擎Thymeleaf 简单上手 常用标签汇总 项目源码 JPA 和 Thymeleaf 实践 多环境配置 添加Servlet支持 效果图 ...
6. Spring Data Jpa 7. fastJson 8. swagger-ui 9. qiniu 使用说明 1. git clone 本项目 2. 在mysql中导入项目的sql文件 3. 将项目中yml配置文件中的数据库配置改为自己的配置 4. 运行项目,输入localhost:8088/...
用过hibernate的朋友们都知道,有个强大的东西叫 JPA,还有个更NB的东西叫spring-data,但是Mybatis更好用啊,而且灵活。可是Mybatis就可怜了,没有上面那些东西,在网上找,也有一些类似jpa的产品出现,但是总感觉...
关于对寻找停车场、预约、停车等一系列操作进行管理。以及车库对自己停车场进行管理的可视化平台兼容系统。 环境需要 1.jdk1.8 2.mysql5.7+ ...6. Spring Data Jpa 7. fastJson 8. swagger-ui 9. qiniu