cglib与asm简介
ASM
是能够生成Java字节码的一个开源框架。其能够修改已有类或者动态生成类,其操作结果为产生Java字节码文件,同时可以修改Java字节码文件。cglib
底层运用了ASM这一字节码操纵框架,其主要作用是通过继承的方式实现动态代理。利用cglib实现动态代理,相比于JDK原生动态代理来说,避免了必须实现接口的要求。但是cglib也不是万能的,由于其需要通过继承方式完成动态代理,所以其无法对 final
关键字修饰的类进行代理增强。
cglib的入门使用
了解了cglib的基本概念,我们来看一个简单利用cglib实现方法增强的例子。
该工程使用maven进行依赖管理,在编写之前需加入cglib的maven依赖,pom文件中添加:
实例代码如下:
此例展示了一个最基本的利用cglib字节码生成库进行方法增强的示例,下面我们来进行代码的分析。