天天看点

代理模式-动态代理(基于继承,cglib动态代理)

静态代理

动态代理

1:CGLib的基本介绍

2:目标类

3:方法拦截器

4:测试类

这里我们介绍了静态代理,也知道了静态代理的一些缺点 代理模式-静态代理
下面我们就介绍动态代理(基于继承,cglib动态代理)
看一下CGLib的基本结构,下图所示,代理类去继承目标类,每次调用代理类的方法都会被方法拦截器拦截,在拦截器中才是调用目标类的该方法的逻辑,结构还是一目了然的; 
代理模式-动态代理(基于继承,cglib动态代理)
使用一下CGLib,在JDK动态代理中提供一个Proxy类来创建代理类,而在CGLib动态代理中也提供了一个类似的类Enhancer; 使用的CGLib版本是3.3.0,我用的maven项目进行测试的,首先要导入cglib的依赖

 

目标类(一个公开方法,打lol,另外一个用final修饰,学习):
代理模式-动态代理(基于继承,cglib动态代理)
这里只介绍如何使用,至于原理,可以参考这篇 CGLib动态代理

继续阅读