代码例子:
package com.test;
/**
* 一个真实的接口
* @author yale
*
*/
public interface ISubject
{
public void request();
}
package com.test;
/**
* 一个真实的对象
* @author yale
*
*/
public class RealSubject implements ISubject
{
public void request()
{
System.out.println("real subject request");
}
}
package com.test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
* 一个动态代理对象,实现InvocationHandler
* @author yale
*
*/
public class DynamicSubject implements InvocationHandler
{
private Object obj;//被代理的对象
public DynamicSubject(Object o)
{
this.obj = o;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("before request");
method.invoke(obj,args);
System.out.println("after request");
return null;
}
}
package com.test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
/**
* 调用测试
*
* @author yale
*
*/
public class Client
{
public static void main(String[] args)
{
RealSubject realSubject = new RealSubject();
InvocationHandler handler = new DynamicSubject(realSubject);
Class<?> classType = handler.getClass();
ISubject subject = (ISubject) Proxy.newProxyInstance(classType
.getClassLoader(), realSubject.getClass().getInterfaces(),
handler);
subject.request();
}
}
分享到:
相关推荐
java 反射与动态代理Reflection&DynamicProxy,源码展示
Castle Dynamic Proxy代理使用
SpringIOC,DI+dynamic proxy 实现盗版AOP的源代码
package cn.sxt.dynamicproxy; import java.util.ArrayList; import java.util.List; import cn.sxt.service.UserService; import cn.sxt.service.UserServiceImpl; public class Client { public ...
这是动态代理的简单实例,方便学,入手.这个例子非常的简单哦!
绿色软件,无需安装,可以自动添加、修改代理服务器ip地址
如果使用LinFu.DynamicProxy动态代理,引用NHibernate.ByteCode.LinFu.dll程序集并配置proxyfactory.factory_class节点为 <property name="proxyfactory.factory_class"> NHibernate.ByteCode.LinFu....
主要写了静态代理、动态代理、还写了URL的使用,其实就是下载的原理了。 动态代理动态代理动态代理动态代理
动态代理一个简单实用的JDK动态代理演示
NULL 博文链接:https://lionkingzw-hotmail-com.iteye.com/blog/485923
动态代理框架源码 /// 说明: /// 在第一次需要用到代理时动态生成代理类,之后的使用均调用已经生成的代理类 /// 规则: /// 1.不能为接口创建代理类代理类 /// 2.父级必须有空的构造函数 /// 3.只重写...
java 动态代理的前世今生 dynamic proxy in java
所谓Dynamic Proxy是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。你当然可以把该class的实例当作这些interface中的任何一个来用。...
本资源利用文档加源码的方式较详细的介绍了JDK 动态代理和Spring的AOP机制.相信对您理解相关方面的知识有很大作用.
java static proxy dynamic proxy
└─dynamicproxy └─src └─com └─dynamicproxy ├─entity │ Subject.java │ ├─entityimpl │ SubjectImpl.java │ ├─main │ Test.java │ └─proxy AbstractDynamicProxy.java ...
Java动态代理 动态代理实现
动态代理&静态代理
程序员姓名:Daryl Varghese 和 Kishan Patel 动态代理/Madleets 代理 v1.0 是为 madeets.com 制作的动态代理。 代理应用程序从 hidemyass.com 获取最佳代理并实时更改系统代理配置。 特点: 1.适用于所有windows...
spring_dynamic_proxy:基于接口基于子类的动态代理