您的位置:首页 > 编程语言 > ASP

Cglib,asm,Aspect,JDK原生的代理模式这四种有哪些差别,原理各是什么?

2016-07-11 21:42 741 查看
1.jdk是内部生成了一个实现了被代理类所有接口的代理类,用反射来调用InvocationHandler的invoke方法来代理所有类,生成速度最快,执行速度最慢。
2.asm直接操作字节码,然后用classload加载如jvm里,生成速度慢,执行速度较快。
3.感觉cglib是对asm的封装啊,不用了解那么多class类结构就可以用了。由于封装性能比asm差点,但是比JDK快。
4.aspectJ是编译的时候直接编译入切面,速度应该是最快的。

  使用cglib为目标类提供动态代理:需要导入cglib.jar和asm.jar。如果出现asm中的类无法找到的异常,在java工程中是真的缺少asm.jar,而在web工程中很可能是asm.jar和spring提供的org.springframework.asm-3.0.4.RELEASE.jar包冲突。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: