定义:为其他对象提供一种代理以控制对这个对象的访问。代理对象起到中介的作用,可去掉功能服务或增加额外的服务。
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