动态代理
来源:互联网 发布:疯狂淘宝李涛微博 编辑:程序博客网 时间:2024/06/05 03:14
AOP的源码中用到了两种动态代理来实现拦截切入功能:jdk动态代理和cglib动态代理。两种方法同时存在,各有优劣。
jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm生成类过程低效问题)。还有一点必须注意:jdk动态代理的应用前提,必须是目标类基于统一的接口。如果没有上述前提,jdk动态代理不能应用。
由此可以看出,jdk动态代理有一定的局限性,cglib这种第三方类库实现的动态代理应用更加广泛,且在效率上更有优势。
jdk动态代理:
接口:
实现类:
测试类:
cjlib代理:
测试类:
阅读全文
0 0
- 代理-->静态代理&动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 图像配准(Image Registration)简介
- so库又一次遇到 undefined symbol------ldd, nm, c++filt命令大显身手
- 跨域请求 JSONP & CORS
- JStorm与Storm源码分析(七)--BasicBoltExecutor与装饰模式
- jquery autoComplete 自定义回写样式
- 动态代理
- 姿态解算(二),姿态更新
- jdk 源码分析(1)java hashmap的结构
- sbc(三)自定义Starter-SpringBoot重构去重插件
- 51nod-1299 监狱逃离(贪心)
- javascript高级程序设计--第五章基本包装类型开始
- Nginx教程-location配置
- Nginx 反向代理 Tomcat
- HDU