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