CGLIB包的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类。跟jdk动态代理不一样的是,jdk只能对接口代理,cglib可以对类进行代理。这两者都是动态代理。
这里说一下静态代理和动态代理的区别:
由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理类:在程序运行时,运用反射机制动态创建而成。
cglib的相关使用详见:http://blog.csdn.net/xiaohai0504/article/details/6832990