写cglib动态代理需要哪些jar包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写cglib动态代理需要哪些jar包相关的知识,希望对你有一定的参考价值。

参考技术A 实现cglib动态代理需要4个jar包:
asm-2.2.3,
asm-commons-2.2.3,
asm-util-2.2.3,
cglib-nodep-2.1_3
参考技术B


    1.JDK动态代理

此时代理对象和目标对象实现了相同的接口,目标对象作为代理对象的一个属性,具体接口实现中,可以在调用目标对象相应方法前后加上其他业务处理逻辑。
代理模式在实际使用时需要指定具体的目标对象,如果为每个类都添加一个代理类的话,会导致类很多,同时如果不知道具体类的话,怎样实现代理模式呢?这就引出动态代理。
JDK动态代理只能针对实现了接口的类生成代理。
 

    2.CGLIB代理

CGLIB(CODE GENERLIZE LIBRARY)代理是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的所有方法,所以该类或方法不能声明称final的。
如果目标对象没有实现接口,则默认会采用CGLIB代理;
如果目标对象实现了接口,可以强制使用CGLIB实现代理(添加CGLIB库,并在spring配置中加入<aop:aspectj-autoproxy proxy-target-class="true"/>)。


AOP包括切面(aspect)、通知(advice)、连接点(joinpoint),实现方式就是通过对目标对象的代理在连接点前后加入通知,完成统一的切面操作。

以上是关于写cglib动态代理需要哪些jar包的主要内容,如果未能解决你的问题,请参考以下文章

aop的概念以及 cglib-nodep-2.1_3.jar第三方jia包动态代理使用

jdk动态代理和cglib动态代理底层实现原理详细解析(cglib动态代理篇)

Mybatis之jdk动态代理和cglib动态代理

Mybatis之jdk动态代理和cglib动态代理

Mybatis之jdk动态代理和cglib动态代理

Spring框架_代理模式(静态代理,动态代理,cglib代理)