1. 首页
  2. 编程语言
  3. Java
  4. Spring CGLlB动态代理实现过程解析

Spring CGLlB动态代理实现过程解析

上传者: 2022-04-29 23:07:38上传 PDF文件 107.30 KB 热度 13次

JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理。因此 CGLIB 要依赖于 ASM 的包,解压 Spring 的核心包 spring-core-3.2.2.RELEASE.jar,文件目录如图 1 所示。下面通过案例演示实现 CGLIB 的代理过程。在 com.mengma.dao 包下创建目标类 GoodsDao,在类中定义增、删、改、查方法,并在每个方法编写输出语句,如下所示。上述代码中,应用了 CGLIB 的核心类 Enhancer。在第 19 行代码调用了 Enhancer 类的 setSuperclass() 方法,确定目标对象。在 com.mengma.cglib 包下创建测试类 CGLIBProxyTest,编辑后如下所示。使用 JUnit 测试运行 test() 方法,运行成功后,控制台的输出结果如图 2 所示。

下载地址
用户评论