摘要:
本篇我们介绍一下Cglib是如何实现动态代理的。 Cglib是什么? Cglib是一个强大的代码生成包,广泛地被许多AOP框架使用,用来提供方法的拦截,下图展示了Cglib和一些语言、框架的关系: 根据图总结一下: (1)最底层是字节码,Java中就是.class文件; (2)字节码上面是ASM,一 阅读全文
posted @ 2021-02-21 21:37
codezhao
阅读(414)
评论(0)
推荐(1)
摘要:
在之前的生成代理类的源码分析中,我们会看到调用ProxyGenerator.generateProxyClass()生成代理类的字节码文件,下面我们到ProxyGenerator中看看,代理类的字节码到底是怎么生成的。 /** *ProxyGenerator中的一些字段 */ //代理类全限定名 p 阅读全文
posted @ 2021-02-21 21:36
codezhao
阅读(201)
评论(1)
推荐(1)
摘要:
之前我们通过JDK中的Proxy实现了动态代理,Proxy用起来是比较简便的,但理解起来不是那么清晰,是因为我们并没有看见代理类是怎么生成的,代理类怎么调用的被代理类方法,所以下面我们进入源码看一下。 源码分析 首先进入创建代理对象的方法Proxy.newProxyInstance()中: @Cal 阅读全文
posted @ 2021-02-21 21:32
codezhao
阅读(606)
评论(1)
推荐(1)
摘要:
为什么引入动态代理? 通过之前分析静态代理可以看到,由于代理类与接口绑定了,所以每个接口要分别实现代理类,然后对每个被代理对象(接口的实现类的对象)生成代理对象。 所以静态代理有这样的缺点: 1.所有接口的代理类都需要手动去实现; 2.所有切点添加同一操作的话,如日志打印,需要为每个切点分别添加; 阅读全文
posted @ 2021-02-21 18:28
codezhao
阅读(140)
评论(0)
推荐(0)

浙公网安备 33010602011771号