proxy 动态代理
来源:互联网 发布:焦作淘宝客公司 编辑:程序博客网 时间:2024/09/21 09:18
1.简介
问:什么是代理?
答:有一个对象a,你想用另一个对象b来做他的代理,那么b叫做代理对象,a叫做被代理对象。
问:为什么要使用代理?
答:所以我们不再直接跟a打交道,只需跟代理对象打交道即可。代理对象可以为我们提供额外的或不同的操作。
按照代理对象的创建时期不同,可以分为两种。
静态代理,事先写好代理对象类,在程序发布前就已经存在了;动态代理,程序发布后,动态地创建代理对象。
动态代理又可分为JDK代理和CGLIB代理。
问:JDK代理和CGLIB代理有何不同?
答:JDK代理,只能针对实现了接口的类生成代理。CGLIB代理,针对类实现代理,背后是继承。如果一个类是final的,那代理也无能为力。
2.jdk代理
2.1常用函数
Object java.lang.reflect.Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)
用来生成代理对象。
java.lang.reflect.InvocationHandler
接口。它有一个函数,见下:
Object java.lang.reflect.InvocationHandler.invoke(Object proxy, Method method, Object[] args)
在对代理对象调用函数时,此函数被回调。返回值就是调用函数的返回值。
2.2用法
写一个类Handler实现InvocationHandler接口,它的一个成员变量作为被代理对象,一般通过构造函数传入。
2.3代码示例
3.cglib代理
0 0
- Java Proxy动态代理
- 动态代理Proxy
- Java 动态代理 Proxy
- 动态代理(Proxy)
- 动态代理 Proxy InvocationHandler
- Proxy 动态代理。。。
- 动态代理proxy ,InvocationHandler
- Java_动态代理Proxy
- Java动态代理Proxy
- 动态代理Proxy
- 动态代理proxy
- 动态代理 - proxy & InnovationHandler
- proxy动态代理
- 动态代理(Proxy)
- proxy 动态代理
- 动态代理Proxy
- Proxy动态代理
- 动态代理 Proxy InvocationHandler
- 火云开发课堂 - 《Shader从入门到精通》系列 第十二节:在Shader中实现浮雕滤镜
- 经典算法题——第十一题 Bitmap算法
- uc笔记02---错误处理,练习:实现求和求平均值等功能,errno
- 下一代云计算模式:Docker正掀起个性化商业革命
- centos7 oracle 12c 安装问题记录
- proxy 动态代理
- 图片上传预览、图片大小验证、图片格式验证(本人亲自测试)
- Majority Element II leetcode 229
- MySQL 水平拆分
- 移动应用开发必备工具盘点
- sendtoTarget()与sendtoMessage()
- java中的同步容器和并发容器
- 经典算法题——第十题 树状数组
- uc笔记03---环境变量,内存管理,进程映像/堆栈区别,虚拟内存,malloc 特点