一直对 Java 动态代理 不是很理解。最近有时间就仔细看了一下相关的代码,然后也参考了一些网友的文章,终于有点感觉了,也不知道对不对,如果有网友看到有哪里不对的地方,欢迎指导。
代理模式 就是将被代理的对象交给代理对象去执行(不是直接去调用被代理对象),然后代理对象在调用被代理对象的时候就可以再加上一些自己的方法(呵呵,感觉 Spring的 AOP 有点像这样,也有点像 拦截器)。
之前接触过的一个应用是这样的,程序分为客户端和服务端,客户端的环境和服务端的环境有所不同,客户端不可能直接调用服务端的代码。当客户端请求服务端时,先将需要的类名传递给 Java 的 InvocationHandler,通过 Proxy 的
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
{
...
}
得到被代理对象,然后执行被代理对象的方法的时候在
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
...
}
中通过 HttpURLConnection 将方法名和参数发送给 服务端,服务端拿到 类名,方法名和参数后做相应处理,然后将方法的执行结果通过 response 里面返回给客户端(是不是有些像 RMI)。
分享到:
相关推荐
java代理模式
自己总结的代理模式和Java中的动态代理模式,有源码
Java代理模式 事例很生动,非常容易理解,推荐给大家。
java代理模式和动态代理
JAVA设计模式之代理模式实例
Java代理模式模板代码,包含动态代理与静态代理。 静态代理使用了传统的代理类来代理,动态代理中使用了jdk的反射原理进行代理
16-Java代理模式的学习笔记1
对java代理模式有个详细而深入的讲解,从jdk api的角度来讲解的。。。
用java实现代理模式,使用房屋中介的现实例子进行代理模式的说明
Java代理模式.pdf
浅析JAVA代理模式.pdf
Java代理模式参照.pdf
分析Java代理模式的使用方式,和JDK内部动态代理的实现机制,演示如何自己去实现一个动态代理模式,有助于初学者对Java代理模式的理解和运用。
Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。
编程语言Java代理模式.pdf