zoukankan      html  css  js  c++  java
  • java动态代理Dynamic Proxy

    1.被代理对象的接口:

    package test.dynamicproxy;
    
    public interface TargetInterface {
    	public void SayHello();
    	public int sum(int a ,int b);
    }
    
    

    2.被代理的对象:

    package test.dynamicproxy;
    
    public class Target implements TargetInterface {
    
    	public void SayHello(){
    		System.out.println("Hello");
    	}
    	public int sum(int a, int b) {
    		return a+b;
    	}
    }
    
    

    3.InvocationHandler包装:

    package test.dynamicproxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    
    public class TargetInvocationHandler implements InvocationHandler {
    
    	private Object object;
    	public TargetInvocationHandler(Object obj){
    		this.object=obj;
    	}
    	
    	public Object invoke(Object proxy, Method method, Object[] args2)
    	throws Throwable
    	{
    		doBefore();
    		Object result = method.invoke(object, args2);
    		doAfter();
    		return result;
    	}
    
    	public void doBefore(){
    		System.out.println("do before");
    	}
    
    	public void doAfter(){
    		System.out.println("do after");
    	}
    }
    
    

    4.测试类:

    package test.dynamicproxy;
    
    import java.lang.reflect.Proxy;
    
    public class TestDynamicProxy {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Target t=new Target();
    		TargetInvocationHandler handler=new TargetInvocationHandler(t);
    		
    		TargetInterface proxy = (TargetInterface) Proxy.newProxyInstance(
    				t.getClass().getClassLoader(),
    				t.getClass().getInterfaces(),
    				handler);
    				
    		proxy.SayHello();
    
    		int b=proxy.sum(10, 20);
    		System.out.println(b);
    	}
    
    }
    
    

  • 相关阅读:
    周末小练习
    第十二届全国大学生信息安全竞赛总结与反思
    sql注入学习心得与sqlmap使用心得
    2019“嘉韦思”杯RSA256题目wp
    斐波那契数列求解的三种方法
    二叉树的下一个节点
    替换空格
    二维数组中的查找
    不修改数组找出重复数字
    数组中重复数字
  • 原文地址:https://www.cnblogs.com/wucg/p/1890377.html
Copyright © 2011-2022 走看看