Mybatis通过Spring完成代理类注入的流程分析
作者:百步飞剑 盖聂 时间:2023-10-25 00:55:55
流程分析
首先,使用mybatis的时候会定义mapper接口的基础包,一般我们会用@MapperScanner这个注解,来看下这个注解
来看下这个MapperScannerRegistrar类
这个类实现了ImportBeanDefinitionRegistrar也就是spring注册beanDefined时候需用到,这个重写了一下,这个方法里,前面的话是一些基础属性的赋值,最重要的是这个方法
根据basePackages去进行扫描,来跟下这个方法
首先会调用父类生成一个BeanDefinitionHolder的集合,重点是这个方法processBeanDefinitions,而在这个方法里,重中之重的是这个
很形象,偷换概念了,将这个bean的实现类换成了MapperFactoryBean,它肯定实现了FactoryBean的接口并实现了getObject这个方法,getObject也就是我们实例化bean获取bean的途径,继续往下跟,果然
之后是这个
之后是这个
调用了MapperRegistry,来看下
最后到了MapperProxyFactory,来看下
按照如下的步骤进行调用的,最后通过jdk * 的方法,绑定mapper接口的最终实现是mapperProxy
来源:https://blog.csdn.net/qwe3642/article/details/119791727
标签:Mybatis,Spring,代理类,注入
0
投稿
猜你喜欢
判断List和Map是否相等并合并List中相同的Map
2022-12-29 02:11:10
Android中的Selector的用法详解及实例
2023-11-26 22:17:06
Java实现FIFO任务调度队列策略
2021-09-19 09:05:37
Android使用addView动态添加组件的方法
2023-12-03 03:40:25
android利用ContentResolver访问者获取手机短信信息
2022-02-02 15:02:37
Winform开发中使用下拉列表展示字典数据的几种方式
2022-02-23 11:56:41
JavaWeb实现文件上传与下载的方法
2023-12-23 04:42:56
RestTemplate在Spring或非Spring环境下使用精讲
2022-03-03 07:35:41
详解SpringCloud Zuul过滤器返回值拦截
2023-02-05 07:59:37
结合.net框架在C#派生类中触发基类事件及实现接口事件
2022-02-23 20:39:57
Springboot 使用maven release插件执行版本管理及打包操作
2023-07-12 01:20:35
C#中事件的定义和使用
2022-02-15 13:34:00
java判断某个点是否在所画多边形/圆形内
2022-09-30 23:50:45
Unity实现弧形移动效果
2023-08-03 20:58:51
解决SpringBoot加载application.properties配置文件的坑
2023-02-05 19:55:27
Android使用Rotate3dAnimation实现3D旋转动画效果的实例代码
2023-07-30 12:21:29
C#使用BackgroundWorker控件
2022-10-25 05:06:35
详解如何使用Android Studio开发Gradle插件
2023-11-20 23:39:05
深入解析Android中的RecyclerView组件
2021-12-02 13:07:32
JPype实现在python中调用JAVA的实例
2022-08-24 03:19:52