前言1.7 动态代理模式 ----- CGLIB动态代理模式

CGLIB动态代理模式

      1. 什么是CGLIB

        CGLIB, Code Generation Library ,代码生成库,是一个开源项目。是一个强大的、高性能、高质量的代码生成类库。它可以在运行期扩展Java类和实现Java接口。

        CGLIB 的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类。(该节要学到的代理类就是由ASM生成的)

2. 应用场景

        GBLIB动态代理,其所要增强的目标类可以没有实现任何业务接口。当然。若目标类实现了业务接口,也可以使用CGLIB生成代理类。(而 JDK的Proxy动态代理要求目标类必须实现业务接口。)

3. 代理生成原理

CGLIB使用子类扩展父类的方式来生成代理的。即CGLIB会动态生成目标类的子类作为代理类,并创建其对象,即代理对象。 

4. 使用要求

(1)目标类不能是final 的。(因为final类型没有子类。)

(2)目标类要具有无参构造器(没有无参构造器,子类将无法创建)

5. Jar 包下载

      从 github 官网下载。

网址栏输入 github.com/cglib --------点击cglib ------点击releases  -------- DownLoad 中下载  (其中 ,  名为 cglib-nodep.x.x.x.jar 的jar包中直接包含ASM , 名为 cglib.x.x.x.jar 的 jar包不包含ASM. 若感觉带ASM的jar包中ASM版本低,想更新ASM可直接下载不包含的这一个)

猜你喜欢

转载自blog.csdn.net/lecitoy_lxx/article/details/81136052