`
y806839048
  • 浏览: 1084477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

通用mapper和mybatis-spring的关系以及与之相似的spring-data-jpa

阅读更多

 

通用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;

}

 

 

 

 

 

分享到:
评论

相关推荐

    MyBatisCodeHelper-Pro.zip

    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 ...

    3积分下载最新尚硅谷全套21套视频打包包括SpringCloud和SpringBoot等等

    八、尚硅谷SpringData视频 九、尚硅谷SSSP整合&分页视频 十、尚硅谷Redis视频 十一、 尚硅谷Maven视频 十二、 尚硅谷Shiro视频 十三、 尚硅谷MySQL高级视频 十四、 尚硅谷MyBatis 视频 十五、尚硅谷SSM高级...

    springboot项目整合.zip

    第六篇:整合SpringDataJpa] 第七篇:整合Mybatis] 第八篇:通用Mapper与分页插件的集成] 第九篇:整合Lettuce Redis] 第十篇:使用Spring Cache集成Redis] 第十一篇:集成Swagger在线调试] 第十二篇:...

    Java Springboot学习资料.rar

    整合SpringDataJpa 整合Mybatis 通用Mapper与分页插件的集成 整合Lettuce Redis 使用Spring Cache集成Redis 集成Swagger在线调试 初探RabbitMQ消息队列 RabbitMQ延迟队列 actuator 服务监控与管理 actuator与spring-...

    基于Vue+SpringBoot+MySQL实现的智能停车场管理平台源码+数据库

    6. Spring Data Jpa 7. fastJson 8. swagger-ui 9. qiniu 使用说明 1. 在mysql中导入项目的sql文件 2. 将项目中yml配置文件中的数据库配置改为自己的配置 3. 运行项目,输入localhost:8088/login 登录可查看项目接口...

    springBootDemo

    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的产品出现,但是总感觉...

    Springboot智能停车场管理平台毕业设计

    关于对寻找停车场、预约、停车等一系列操作进行管理。以及车库对自己停车场进行管理的可视化平台兼容系统。 环境需要 1.jdk1.8 2.mysql5.7+ ...6. Spring Data Jpa 7. fastJson 8. swagger-ui 9. qiniu

Global site tag (gtag.js) - Google Analytics