Mybatis、Mybatis整合Spring的流程图

Mybatis

注意MapperProxy里面有invoke方法,当进到invoker方法会拿到

二、mybatis整合Spring

java 复制代码
1、当我们的拿到的【Dao】其实就是【MapperProxy】,执行Dao的方法时,会被MapperProxy的【Invoke方法拦截】
2、图上已经标注了MapperProxy包含哪些属性,在Invoke方法里面,就是通过这些属性,【执行sql】。
java 复制代码
1、Mybatis和Spring整合后,获取Dao的代理对象是通过MapperFactoryBean,而不是之前的MapperProxyFactory,
2、但是MapperFactoryBean其实也是间接从MapperProxyFactory里面拿到的。

3、拿到MapperProxy,执行Dao的方法会被MapperProxy的Invoke方法拦截,这里和Mybatis是一样的。

4、这里的Invoke方法拦截后,是转到了SqlSessionTemplate,由SqlSessionTemplate的属性sqlSessionProxy
执行sql

5、在sqlSessionProxy里面也有一个Invoke方法,里面进一步对事物的进行了封装。

6、整个过程,进了【2个不同的Invoke方法】,这就是Spring实现事务等额外逻辑的处理
相关推荐
二哈赛车手7 小时前
新人笔记---Spring AI的Advisor以及其底层机制讲解(涉及源码),包含一些遇见的Spring AI的Advisor缺陷问题的解决方案
java·人工智能·spring boot·笔记·spring
薪火铺子7 小时前
Redis 缓存三大问题与解决方案
redis·spring·缓存
pq2178 小时前
Spring FactoryBean源码解析
java·spring boot·spring
pq2178 小时前
spring如何扫描解析bean(注册bean的多种方式)
spring
Java成神之路-8 小时前
面试题:MyBatis延迟加载的底层原理
mybatis
IT空门:门主10 小时前
spring ai alibaba -流式+invoke的人工介入的实现
java·后端·spring
敖正炀10 小时前
Spring Boot + MyBatis 企业级数据访问层实战:从选型到分库分表的深度演进
mybatis
javachen__12 小时前
Spring MVC 动态支持 JSON/XML 的技巧
spring·springmvc
敖正炀12 小时前
多数据源与读写分离中间件
mybatis
敲敲千反田12 小时前
Spring 相关
java·后端·spring