1 2 3 4 5 6 | package com.mzsx.proxy; public interface FunctionServer { void creatdDoc( int count); void removeDoc( int count); } |
1 2 3 4 5 6 7 8 9 10 11 | package com.mzsx.proxy; public class FunctionServerImp implements FunctionServer { @Override public void creatdDoc( int count) { System.out.println( "创建了" +count+ "对象。。。。。。。" ); } @Override public void removeDoc( int count) { System.out.println( "删除了" +count+ "对象。。。。。。。" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.mzsx.proxy; public class Porformant { private long start; private long end; public void start(){ System.out.println( "执行start。。。。。" ); start =System.currentTimeMillis(); } public void end(){ end=System.currentTimeMillis(); System.out.println( "耗时" +(end-start)+ "ms........" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package com.mzsx.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class FunctionHandler implements InvocationHandler { private Object target; public FunctionHandler(Object target){ this .target=target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println( "==============:" +proxy.getClass().getName()); Porformant porformant= new Porformant(); porformant.start(); Object object=method.invoke(target, args); porformant.end(); return object; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package com.mzsx.proxy; import java.lang.reflect.Proxy; public class Functiontest { public static void main(String[] args) { // TODO Auto-generated method stub FunctionServer functionServer= new FunctionServerImp(); FunctionHandler functionHandler= new FunctionHandler(functionServer); FunctionServer proxy=(FunctionServer)Proxy.newProxyInstance(functionServer.getClass().getClassLoader(), functionServer.getClass().getInterfaces(), functionHandler); proxy.creatdDoc( 10 ); System.out.println( "-------------------------------------------" ); proxy.removeDoc( 20 ); } } |
结果:
1 2 3 4 5 6 7 8 9 | ==============:$Proxy0 执行start。。。。。 创建了 10 对象。。。。。。。 耗时0ms........ ------------------------------------------- ==============:$Proxy0 执行start。。。。。 删除了 20 对象。。。。。。。 耗时1ms........ |