欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Mybatis通过Spring完成代理类注入的流程分析

时间:2022-02-24 10:45:06|栏目:JAVA代码|点击:

流程分析

首先,使用mybatis的时候会定义mapper接口的基础包,一般我们会用@MapperScanner这个注解,来看下这个注解

 来看下这个MapperScannerRegistrar类

 这个类实现了ImportBeanDefinitionRegistrar也就是spring注册beanDefined时候需用到,这个重写了一下,这个方法里,前面的话是一些基础属性的赋值,最重要的是这个方法

根据basePackages去进行扫描,来跟下这个方法

 首先会调用父类生成一个BeanDefinitionHolder的集合,重点是这个方法processBeanDefinitions,而在这个方法里,重中之重的是这个

 很形象,偷换概念了,将这个bean的实现类换成了MapperFactoryBean,它肯定实现了FactoryBean的接口并实现了getObject这个方法,getObject也就是我们实例化bean获取bean的途径,继续往下跟,果然

之后是这个

 之后是这个

 调用了MapperRegistry,来看下

 最后到了MapperProxyFactory,来看下

 按照如下的步骤进行调用的,最后通过jdk动态代理的方法,绑定mapper接口的最终实现是mapperProxy

总结

关于mybatis是如何将代理类绑定到mapper接口的,大概流程是这样,通过实现ImportBeanDefinitionRegistrar,重新定义这个beanClass为

MapperFactoryBean,这个类的话是一个FactoryBean有自己的getObject方法,通过调用当前对象的SqlSession对象的getMapper方法,转而到从这个对象的configuration对象中getMapper,进而从这个对象的mapperRegistry获取,而在MapperRegistry使用mapperProxyFactory实例化,通过代理绑定MapperProxy为这个接口的真正实现类,之后的话,我们调用mapper,其实就是调用了mapperProxy,之后的流程上一张已经提过

上一篇:Protobuf的简要介绍及使用详解

栏    目:JAVA代码

下一篇:解析Java的InputStream类并借助其读取ppt文件

本文标题:Mybatis通过Spring完成代理类注入的流程分析

本文地址:http://www.codeinn.net/misctech/194394.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有