动态代理(Proxy)
来源:互联网 发布:执行方案范文知乎 编辑:程序博客网 时间:2024/05/17 10:38
Java Proxy 是基于接口实现动态代理,虽然具有一定局限性,但是不得不说Proxy仍然是非常伟大、优秀的.代理模式的应用相当广泛,开源架构Spring AOP 就是基于Java Prxoy 实现的. OK! 废话不多说了.接下来我们以几个实例来看一下Proxy到底如何应用,也会看一下SUN如何实现的Proxy.
Java API:
protected
Proxy(InvocationHandler h)
使用其调用处理程序的指定值从子类(通常为动态代理类)构建新的
Proxy
实例。
static InvocationHandler
getInvocationHandler(Object proxy)
返回指定代理实例的调用处理程序。
static Class<?>
getProxyClass(ClassLoader loader,Class<?>... interfaces)
返回代理类的
java.lang.Class
对象,并向其提供类加载器和接口数组。static boolean
isProxyClass(Class<?> cl)
当且仅当指定的类通过
getProxyClass
方法或 newProxyInstance
方法动态生成为代理类时,返回 true。static Object
newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)
返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序。
package com.haian.test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* @author Lixh
*
*/
public class SecurityHandler implements InvocationHandler {
// 需要代理的目标对象
public Object targeObject = null;
// 生成代理类
public Object createProxyInstance(Object targeObject) {
this.targeObject = targeObject;
return Proxy.newProxyInstance(SecurityHandler.class.getClassLoader(),
targeObject.getClass().getInterfaces(), this);
}
public Object invoke(Object arg0, Method method, Object[] arrays)
throws Throwable {
return method.invoke(targeObject, arrays);
}
public void validate() {
}
}
- 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
- Thinkphp - 缓存的使用 (Memcache)
- mysql的左连接、右连接和内连接
- [LeetCode 62]Unique Paths
- A Bug's Life-HDU-1829
- Linux Shell 文件重定向
- 动态代理(Proxy)
- 可执行文件(ELF)格式的理解
- Add Two Numbers
- 黑马程序员_日记5_Java多态
- 每天一个面向对象陷阱,一个算法,一个小看法
- 可执行程序的组成
- 利用WebSphere Edge Server构建冷轧系统负载均衡
- UVa 806 - Spatial Structures(DFS)
- Delphi IDHTTP用法详解