java 动态代理范例 InvocationHandler与Proxy
来源:互联网 发布:淘宝代收货款会计分录 编辑:程序博客网 时间:2024/04/30 02:21
java 动态代理范例 InvocationHandler与Proxy,拦截与代理
(2011-04-22 19:19:23)转载▼
标签:
接口
helloworld
代理
it
分类: 技术引用java.lang.reflect.Proxy,
Proxy 提供用于创建动态代理类和实例的静态方法.
newProxyInstance()
返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序
(详见api文档)
java.lang.reflect.InvocationHandler,
InvocationHandler 是代理实例的调用处理程序 实现的接口。
invoke()
在代理实例上处理方法调用并返回结果。在与方法关联的代理实例上调用方法时,将在调用处理程序上
调用此方法。
JDK1.2以后提供了动态代理的支持,程序员通过实现java.lang.reflect.InvocationHandler接口提供一个拦截处理器,然后通过java.lang.reflect.Proxy得到一个代理对象,通过这个代理对象来执行商业方法,在商业方法被调用的同时,执行处理器会被自动调用。
Java动态代理只能对实现了接口的类生成代理,不能针对类。其实现主要是通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现。
Java代码
- public
interface HelloWorld { -
void sayHelloWorld(); - }
Java代码
- public
class HelloWorldImpl implementsHelloWorld { -
void sayHelloWorld() { -
System.out.println( World!" ); -
} - }
Java代码
- public
class HelloWorldHandler implementsInvocationHandler { -
-
Object targetObject; -
-
HelloWorldHandler(Object targetObject){ -
= targetObject; -
} -
-
Object throwsinvoke(Object proxy, Method method, Object[] args) Throwable { -
System.out.println( -
-
Object result = method.invoke( args); -
-
System.out.println( -
-
result; -
} - }
Java代码
- public
class HelloWorldTest { -
static void main(String[] args) { -
-
HelloWorld obj = HelloWorldImpl(); -
-
-
HelloWorldHandler handler = HelloWorldHandler(obj); -
-
-
HelloWorld proxy = (HelloWorld)Proxy.newProxyInstance( -
obj.getClass().getClassLoader(), -
obj.getClass().getInterfaces(), -
handler); -
-
-
proxy.sayHelloWorld(); -
} - }
Html代码
- 方法调用前。。。
- Hello
World! - 方法调用结束
0 0
- java 动态代理范例 InvocationHandler与Proxy
- java 动态代理范例 InvocationHandler与Proxy,拦截与代理
- java动态代理-InvocationHandler Proxy
- Java动态代理InvocationHandler+Proxy
- Java动态代理借助Proxy与InvocationHandler实现
- Java动态代理的源码分析;Proxy与InvocationHandler
- 动态代理 Proxy InvocationHandler
- 动态代理proxy ,InvocationHandler
- 动态代理 Proxy InvocationHandler
- java 动态代理学习(Proxy,InvocationHandler)
- java 动态代理深度学习(Proxy,InvocationHandler)
- java 动态代理学习(Proxy,InvocationHandler)
- JAVA动态代理实现 Proxy InvocationHandler
- JAVA JDK 动态代理 proxy invocationHandler
- java 动态代理深度学习(Proxy,InvocationHandler)
- Java 动态代理(proxy、invocationHandler)
- Java动态代理用法(Proxy + InvocationHandler)
- java 动态代理学习(Proxy,InvocationHandler)
- Cmake+OpenCV 2
- 关于Tableview头部添加图片或者其他东西的时候
- C++——拼接+=
- SAT写作万能满分模板,看了就是赚到了
- MX视频播放器解码包(MX Player) v1.7.27 全机型解码器下载
- java 动态代理范例 InvocationHandler与Proxy
- C#面向对象设计模式纵横谈3 AbstractFactory抽象工厂模式创建型模式
- 安卓APP上传市场开通开发者权限\上传操作
- pl/sql developer 导出数据库中的表到可执行的.sql 脚本文件
- type alignment
- office 2007 卸载
- Android 启动Service监听网络状态
- Timer定时器、TimerTask、Random随机数
- JavaScript开发规范