标签:
定义:为其他对象提供一种代理以控制对这个对象的访问。代理对象起到中介的作用,可去掉功能服务或增加额外的服务。
package com.imooc.jdbcproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class TimeHandler implements InvocationHandler {
public TimeHandler(Object target) {
super();
this.target=target;
}
private Object target;
/*
* 参数:proxy是被代理的对象
* method:被代理的方法
* arg:方法的参数
*/
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("开始开车时间——————");
long starttime=System.currentTimeMillis();
method.invoke(target);
System.out.println("开车结束时间-------");
long endtime=System.currentTimeMillis();
System.out.println("开车所用时间。。。。。"+(endtime-starttime)+"毫秒");
return null;
}
}
package com.imooc.jdbcproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import com.imooc.proxy.Car;
import com.imooc.proxy.moveAble;
/*
* JDK动态代理测试类类
*/
public class Test {
public static void main(String[] args) {
Car car=new Car();
InvocationHandler h=new TimeHandler(car);
Class<?> cls=car.getClass();
/*
* loader;类加载器
* interface:实现接口
* h InvocationHandler:
*/
moveAble m=(moveAble) Proxy.newProxyInstance(cls.getClassLoader(),
cls.getInterfaces(), h);//动态产生了代理对象
m.move();
}
}
标签:
原文地址:http://www.cnblogs.com/yangmei123/p/5374903.html