用四个简单的类演示java的代理模式,注释写在代码中:
入口程序:
Client.java
package com.javasd.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; public class Client { public static void main(String[] args) { RealSubject rs = new RealSubject(); //实例化代理类 InvocationHandler ds = new DynamicSubject(rs); Class<?> cls = rs.getClass(); //入参解释:貌似jdk的代理只支持对接口的代理 //1、被代理类的classloader //2、被代理类的接口 //3、代理类 Subject subject = (Subject) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(),ds ); subject.request(); } }
被代理的接口:
Subject.java
package com.javasd.proxy; public interface Subject { public void request(); }
接口的实现:
RealSubject.java
package com.javasd.proxy; public class RealSubject implements Subject{ public void request() { System.out.println("我是被代理的类"); } }
代理类:
DynamicSubject.java
package com.javasd.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class DynamicSubject implements InvocationHandler { private Object sub; public DynamicSubject(){ } public DynamicSubject(Object sub){ this.sub=sub; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("调用代理方法前!"); method.invoke(sub, args); System.out.println("调用代理方法后!"); return null; } }
执行入口程序,控制台显示:
调用代理方法前!
我是被代理的类
调用代理方法后!
相关推荐
Lotus Domino Java 代理获取传递值JSON 在 Lotus Domino 环境中,使用 Java 语言编写代理可以获取传递的 URL 参数,并将其转换为 JSON 字符串。本文将详细介绍如何使用 Java 代理获取 URL 参数,并将其转换为 JSON ...
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。
Java代理服务器的实现Java代理服务器的实现
Java代理模式 事例很生动,非常容易理解,推荐给大家。
lotus domnio java代理输出html代理
java 代理服务源码 测试通过可以,可以自己修改成为自己的代理类。
lotus domnio java代理传值
Domino JAVA代理培训 目录: 表单:存储前台显示页面、后台数据; 视图:根据表单数据、筛选条件列出相符的文档列表; 子表单:只能被表单调用,相当于include子程序; 代理、公式:后台处理程序,对数据存储、数据...
lotus domnio java代理获取当前用户名
java代理模式
lotus Domino BS开发 通过java 代理导出excel.doc
Java 代理 - Java 代理 - 代理模式 - 静态代理与动态代理 - 常见的动态代理实现 - JDK Proxy - CGLIB - JDK Proxy 和 CGLIB 的对比 - 动态代理的实际应用 - Spring AOP 说在前面:今天我们来聊一聊 Java ...
转;Domino_java代理实现FTP上传下载
JAVA,代理服务器,JAVA代理服务器 本小工具是使用JAVA开发的代理服务器,只要设置好代理端口(端口在100~65000之内的任意没被占用的端口都可以),点击启动,局域网内用户就可以设置通过代理联网
Lotusscript java代理自动下载指定路径文件。可批量下载指定路径
java静态代理设计模式,学习记录,简单自定义注解编写
java代理机制 JDK动态代理和cglib代理 详解
一个比较完善的Java代理服务器程序,里面代码其全,结构清晰,值得研究。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。