摘要: 1 前言 上节我们回顾了下 Mapper 接口的解析存放以及代理的入口和创建代理的过程,那么这节我们就来看下 MapperProxy 的代理执行逻辑。 2 源码分析 2.1 invoke 代理逻辑 Mapper 接口方法的代理逻辑首先会对拦截的方法进行一些过滤,以决定是否执行后续的操作。对应的代码如 阅读全文
posted @ 2023-03-06 20:44 酷酷- 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1 前言 上节我们分析了配置文件的详细解析以及Mapper的详细解析,可以看作都是静态的东西,那么这节开始我们就要看动的东西,我们就来看看 SQL 的执行过程,我们平时都会写 Mapper接口,那么这节我们先来看下我们的 Mapper 接口的代理创建过程。 2 源码分析 2.1 Mapper 接口放 阅读全文
posted @ 2023-03-06 07:20 酷酷- 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 1 前言 今天我们来看个问题,我看源码的时候产生的困惑,就是我们都知道SpringAOP 我们方法中调用第二个方法,第二个方法不会走增强的逻辑,而原生的 Cglib 方法互相调用是会走增强的呢?我们看下现象: 1.1 原生 Cglib 方法互相调用 public class UserServiceI 阅读全文
posted @ 2023-03-05 16:37 酷酷- 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1 前言 上节我们简单看了 Enhancer 的 generateClass 和 firstInstance,两个方法的内容也就是创建代理以及生成代理对象的内容,这节我们结合实际生成的文件了解一下代理的实际执行过程。 2 代理文件分析 我们看一下生成的文件有三个:代理类以及两个FastClass,那 阅读全文
posted @ 2023-03-04 20:30 酷酷- 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 1 前言 上节我们看了 EnhancerKey 是通过KeyFactory里的 Generator来创建代理对象,这节我们就来看下 Enhancer是如何创建代理对象的。 2 源码分析 上节我们看过了,AbstractClassGenerator 是模板模式的枢纽,创建代理对象子类复写 genera 阅读全文
posted @ 2023-03-04 14:08 酷酷- 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1 前言 上节我们简单感受了下Cglib的一个代理过程,并且我也说到了Enhancer 创建代理的时候,首先会创建对象Key出来,用于标识这个类以及将其作为缓存的Key,然后再创建代理对象并放进缓存,那么这节我们就来看下执行的一个具体过程。 2 源码分析 2.1 Key创建的时机 首先我们先来看下是 阅读全文
posted @ 2023-03-03 21:57 酷酷- 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1 前言 之前我们看过了JDK动态代理的源码了,今天我们大概花三四篇(因为一篇文章东西太多写的人费劲看的人也累哈)来看看Cglib的代理源码过程,其中涉及到asm包中的东西构建类代码什么的这里我暂时不做深入了解哈。 2 环境准备 源码下载地址:http://www.java2s.com/Code/J 阅读全文
posted @ 2023-03-03 20:13 酷酷- 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 1 前言 在了解数据源后,我们来看下事务管理器,这个东西也很重要。 2 事务管理器类型 在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"): JDBC – 这个配置直接使用了 JDBC 的提交和回滚功能,它依赖从数据源获得的连接来管理事务作用域。默认情 阅读全文
posted @ 2023-03-02 21:34 酷酷- 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 1 前言 这节我们练习下,Mybatis怎么引入第三方的数据源,我们这里拿 Druid 示例。 2 引入 Druid 数据源 2.1 依赖引入 首先我们要把 Druid 的包引进来吧: <dependency> <groupId>com.alibaba</groupId> <artifactId>d 阅读全文
posted @ 2023-03-02 07:52 酷酷- 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 1 前言 上节我们看过了连接池的管理,那么我们这节再看下非池连接的数据源的源码,这部分内容比较少,应该会很轻松,我们来看下吧。 2 源码分析 我们先来看下 UnpooledDataSource 类的基础信息: 2.1 基础信息 public class UnpooledDataSource impl 阅读全文
posted @ 2023-03-02 07:12 酷酷- 阅读(52) 评论(0) 推荐(0) 编辑