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

qqstrategy55120 10 0 pdf 2022-04-29 23:04:38

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 所示。

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

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

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

用户评论
请输入评论内容
评分:
暂无评论