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

}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值