JDK动态代理与CGLIB动态代理的区别
简介:
在Spring中的AOP是依靠动态代理来实现切面编程的.
而这两者又是有区别的.
区别:
JDK是基于反射机制,生成一个实现代理接口的匿名类,然后重写方法,实现方法的增强.
它生成类的速度很快,但是运行时因为是基于反射,调用后续的类操作会很慢.
而且他是只能针对接口编程的.
CGLIB是基于继承机制,继承被代理类,所以方法不要声明为final,然后重写父类方法达到增强了类的作用.
它底层是基于asm第三方框架,是对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理.
生.
原创
2020-08-10 19:11:55 ·
340 阅读 ·
0 评论