- 浏览: 424675 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Java搜索工具——Lucene实例总结(一) -
chengang292214:
总结的不错
Web开发中的路径问题 -
liuyuanhui0301:
aka~
Java 归并排序(基于数组) -
IT人_:
不错
远程连接MySQL,防火墙阻止访问,解决办法 -
zhuchao_ko:
借鉴。
JNDI访问LDAP
代理模式UML类图
代理模式
1. 静态代理
/** * 为被代理的类提供一个接口,是为了提高代理的通用性,凡是实现了该接口的类,都可以被代理 * 这里其实就是运用了java面向对象的多态性 */ public interface IHello { public void sayHello(); } /** * 被代理的类,最根本的想法就是想用另外一个类来代理这个类,给这个类添加一些额外的东西 * 我们只需要创建另外一个类引用这个类就行了 */ public class Hello implements IHello { public void sayHello(){ System.out.println("被代理的方法"); } } /** * 静态代理类,其实就是(被代理类的)接口的另外一种实现, * 用来代替原来的被代理类 * @author qiuxy */ public class StaticProxy implements IHello { IHello hello; public StaticProxy(IHello hello) { this.hello = hello; } /** * 重新实现了sayHello()方法,这种实现其实就是在被代理类实现该方法中添加一些额外的东西, 以实现代理的作用 */ public void sayHello() { System.out.println("在被代理的对象之前执行"); // 被代理的对象执行方法 hello.sayHello(); System.out.println("在被代理的对象之前执行"); } } /** * 测试类 * @author qiuxy */ public class Test { public static void main(String[] args) { //产生一个被代理对象,只要实现了Ihello接口的对象,都可以成为被代理对象 //这里就是利用接口的好处,但这个也有局限性,就是只限于某种接口 IHello hello = new Hello(); //产生一个代理对象 StaticProxy sp = new StaticProxy(hello); //执行代理对象的sayHello()方法,这个方法在被代理的方法前后添加了其他代码 sp.sayHello(); } }
2. 动态代理
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; /** * 代理处理器,这个代理处理器实现了InvocationHandler这个接口, * 这个接口的提供了一个invoke方法,并且传入三个参数(被代理的对象,被代理的方法,方法的参数数组) * 这个invoke方法会在被代理的方法之前被调用 */ public class MyProxyHandler implements InvocationHandler { //被代理的对象 Object delegate; //构造函数,在构在这个代理处理器时,传入要被代理的对象 public MyProxyHandler(Object delegate) { this.delegate = delegate; } //被代理的方法之前会调用的方法 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("我在被代理的方法之前执行"); //被代理的方法开始执行 method.invoke(delegate, args); System.out.println("我在被代理的方法之后执行"); return null; } } import java.lang.reflect.Proxy; /** * 测试类 */ public class Test { public static void main(String[] args) { Hello hello = new Hello(); //产生一个代理处理器对象 MyProxyHandler mph = new MyProxyHandler(hello); //通过反射获得代理类,这里必须转换成代理类的接口类型 //这个代理对象其实是java动态生成一个被代理类的接口的另外一个实现类 IHello myProxy = (IHello)Proxy.newProxyInstance(hello.getClass().getClassLoader() , hello.getClass().getInterfaces(), mph); //代理类执行方法 myProxy.sayHello(); } }
发表评论
-
Test
2014-07-11 15:51 723insert into CMLGPLGP (CMLGP_L ... -
C/C++调用Java代码 创建对象、字符串操作
2011-12-01 16:08 3618back>> 1. java对象的创建的步骤 ... -
JNI(C/C++调用Java父类/子类方法)
2011-11-30 21:56 8239back>> 1. C/C++调用Java函 ... -
C/C++调用Java代码(属性和方法)
2011-11-30 10:48 9246back>> 1. JNIEnv对象 ... -
JNI(Java调用C/C++代码)
2011-11-30 10:46 8419back>> 1. 首先在Java类中声明一 ... -
JNI(Java Native Interface)
2011-11-30 10:12 12391. 基本概念 - Java是跨平台的语言, ... -
JNDI访问LDAP
2011-11-27 11:52 34391. 搭建了ldap服务器 - 下载ope ... -
JNDI
2011-11-27 11:22 21571. 基本概念 (参考 ) jndi ... -
Java 文件锁技术
2011-08-06 09:39 2189IRIP项目中,Agent每分钟都要向Director ... -
Java IO(文件操作工具类)
2011-07-13 18:30 4514去Java IO >> FileOperate实 ... -
XML解析(SAX解析)
2011-05-19 21:07 10251. SAX的基本原理及常用的接口 * Si ... -
java里抽象类和接口的区别
2011-03-05 23:31 747下面的这篇文章讲 ... -
Java 多线程(三)--正确理解ThreadLocal
2011-03-03 18:04 1368转自:http://www.iteye.com/topic/1 ... -
Callable 与 Runnable 的区别
2011-03-03 17:56 3219转自:http://blog.sina.com.cn/s/bl ... -
Java 多线程(二)
2011-03-03 16:21 1987并发 Table of Contents ... -
Java编码规范
2011-02-15 11:10 15861.Eclipse配置 (1) 导入o ... -
Java搜索工具——Lucene实例总结(一)
2010-12-22 21:42 17845参考网页:http://footman265.itey ... -
Java 集合--Map、HashMap、HashTable、TreeMap
2010-12-14 14:20 100511. Map基础 Map接口提供3种集 ... -
JMS在Spring框架下的应用
2010-12-07 23:51 13141上传通讯薄操作, ... -
页面自动跳转代码
2010-11-09 15:11 15801. 在body中使用onload属性 &l ...
相关推荐
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。
lotus domino java代理_获取传递值json
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代理服务器程序,里面代码其全,结构清晰,值得研究。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。