zoukankan      html  css  js  c++  java
  • java dynamic proxy,动态代理

    package dynamicproxy;
    public interface SimpleInterface {
    	void doSth();
    	void doSthElse(String s);
    }
    

      

    package dynamicproxy;
    
    public class RealObject implements SimpleInterface {
    
    	@Override
    	public void doSth() {
    		System.out.println("Real Object do sth");
    		
    	}
    
    	@Override
    	public void doSthElse(String s) {
    		System.out.println("Real Object do sth Else:"+s);		
    	}
    
    }
    
    package dynamicproxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    
    public class DynamicProxyHandler implements InvocationHandler {
    
    	private Object object;
    	public DynamicProxyHandler(Object o){
    		this.object=o;
    	}
    	@Override
    	public Object invoke(Object proxy, Method method, Object[] args)
    			throws Throwable {
    		System.out.println("DynamicProxyHandler process.传来的代理:"+ proxy.getClass());
    		return method.invoke(object, args);
    	}
    
    }
    
    package dynamicproxy;
    
    import java.lang.reflect.Proxy;
    
    public class Test {
    
    	static void consumer(SimpleInterface obj){
    		obj.doSth();
    		obj.doSthElse("你去处理一下");
    	}
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    
    		RealObject obj=new RealObject();
    		consumer(obj);
    		
    		SimpleInterface proxObj = (SimpleInterface) Proxy.newProxyInstance(
    				SimpleInterface.class.getClassLoader(),
    				new Class[] { SimpleInterface.class },
    				new DynamicProxyHandler(obj));
    		consumer(proxObj);
    	}
    
    }
    
  • 相关阅读:
    redis 事务 lq
    redis集群架构高可用分析 lq
    redis分布式锁 lq
    jvm垃圾回收 lq
    【攻防世界】逆向666
    第六届上海市大学生网络安全大赛wp
    【攻防世界】逆向answer_to_everying
    2021 DJBCTF(大吉大利杯) wp
    渗透靶机bossplayersCTF
    2020首届祥云杯部分wp
  • 原文地址:https://www.cnblogs.com/wucg/p/1986362.html
Copyright © 2011-2022 走看看