随笔分类 -  源码 / 代理

代理相关
摘要:1 前言 今天我们来看个问题,我看源码的时候产生的困惑,就是我们都知道SpringAOP 我们方法中调用第二个方法,第二个方法不会走增强的逻辑,而原生的 Cglib 方法互相调用是会走增强的呢?我们看下现象: 1.1 原生 Cglib 方法互相调用 public class UserServiceI 阅读全文
posted @ 2023-03-05 16:37 酷酷- 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们简单看了 Enhancer 的 generateClass 和 firstInstance,两个方法的内容也就是创建代理以及生成代理对象的内容,这节我们结合实际生成的文件了解一下代理的实际执行过程。 2 代理文件分析 我们看一下生成的文件有三个:代理类以及两个FastClass,那 阅读全文
posted @ 2023-03-04 20:30 酷酷- 阅读(66) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们看了 EnhancerKey 是通过KeyFactory里的 Generator来创建代理对象,这节我们就来看下 Enhancer是如何创建代理对象的。 2 源码分析 上节我们看过了,AbstractClassGenerator 是模板模式的枢纽,创建代理对象子类复写 genera 阅读全文
posted @ 2023-03-04 14:08 酷酷- 阅读(122) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们简单感受了下Cglib的一个代理过程,并且我也说到了Enhancer 创建代理的时候,首先会创建对象Key出来,用于标识这个类以及将其作为缓存的Key,然后再创建代理对象并放进缓存,那么这节我们就来看下执行的一个具体过程。 2 源码分析 2.1 Key创建的时机 首先我们先来看下是 阅读全文
posted @ 2023-03-03 21:57 酷酷- 阅读(170) 评论(0) 推荐(0) 编辑
摘要:1 前言 之前我们看过了JDK动态代理的源码了,今天我们大概花三四篇(因为一篇文章东西太多写的人费劲看的人也累哈)来看看Cglib的代理源码过程,其中涉及到asm包中的东西构建类代码什么的这里我暂时不做深入了解哈。 2 环境准备 源码下载地址:http://www.java2s.com/Code/J 阅读全文
posted @ 2023-03-03 20:13 酷酷- 阅读(61) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们讲一下动态代理的实现过程,并且从源码分析下产生过程。看之前先简单看几个基础知识: 函数接口BiFunction<T, U, R> : R apply(T t, U u); 就是参数是T、U返回一个结果R 比如: (s1, s2) -> s1.toString() + s2.toSt 阅读全文
posted @ 2023-02-20 19:06 酷酷- 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1 什么是代理 代理是指给某一个对象提供一个代理对象,代理对象持有原对象的引用。一句话通过代理对象增强原对象的功能,比如在原对象调用一个方法的前后进行日志、事务操作等。Spring AOP就使用了代理模式。 2 代理的分类 代理又分为静态代理和动态代理,所谓静动站在我们自己来说就是静态需要我们自己去 阅读全文
posted @ 2023-02-20 16:51 酷酷- 阅读(228) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示