1.什么是CGLIB
CGLIB,Code Generation Library,代码生成库。是一个开源项目,是一个强大的,高性能,高质量的Code生成类库,它可以在运行在扩展Java类与实现Java接口。
CGLIB的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类。
2.应用场景
CGLIB动态代理,其所要增强的目标类可以没有实现任何业务接口。当然,若目标类实现了业务接口,也可以使用CGLIB生成代理类。
3.代理生成原理
CGLIB使用子类扩展父类的方式来生成代理对象的。即CGLIB会动态生成目标类的子类作为代理类,并创建其对象,即代理对象。
4.使用要求
1>目标类不能是final的
2>目标类要具有无参构造器
5.Jar包下载
从Github官网下载。
CGLIB动态代理模式的实现
一、有接口实现
1.用户类
2.工厂类
二、无接口实现
1.用户类
CGLIB动态代理执行流程分析
MethodProxy:目标方法(代理方法)的代理对象