加入收藏 | 设为首页 | 会员中心 | 我要投稿 文章分享网_茂名站长网 (https://www.0668zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Java动态代理简单达成

发布时间:2021-11-24 13:21:35 所属栏目:教程 来源:互联网
导读:Java动态代理简单实现: package com.dynamic.proxy; public class ProxyDemo { public static void main(String[] args) throws SecurityException, NoSuchMethodException { LogHandler logHandler = new LogHandler(); IHello hello = (IHello)logHandler

Java动态代理简单实现:
 
package com.dynamic.proxy;  
  
public class ProxyDemo {  
  
    public static void main(String[] args) throws SecurityException, NoSuchMethodException {  
          
        LogHandler logHandler = new LogHandler();  
          
        IHello hello = (IHello)logHandler.bind(new HelloImp());  
          
        hello.toHello("cross");  
        hello.toHello1("cross");  
          
    }  
}  
 
 
package com.dynamic.proxy;  
  
import java.lang.reflect.InvocationHandler;  
import java.lang.reflect.Method;  
import java.lang.reflect.Proxy;  
  
public class LogHandler implements InvocationHandler {  
  
    private Object deledate;  
      
    public Object bind(Object deledate){  
        this.deledate = deledate;  
        Object proxy = Proxy.newProxyInstance(deledate.getClass().getClassLoader(), deledate.getClass().getInterfaces(), this);   
        return proxy;  
    }  
      
    public Object invoke(Object proxy, Method method, Object[] obj)  
            throws Throwable {  
          
        doBefore();  
          
        Object result = method.invoke(deledate, obj);  
          
        doAfter();  
          
        return result;  
    }  
      
    private void doBefore() {  
        System.out.println("before....");  
    }  
  
      
    private void doAfter() {  
        System.out.println("after....");  
    }  
      
}  
 
 
package com.dynamic.proxy;  
  
public interface IHello {  
    public void toHello(String name);  
    public void toHello1(String name);  
}  
 
 
package com.dynamic.proxy;  
  
public class HelloImp implements IHello {  
  
    public void toHello(String name) {  
        System.out.println("method hello:" + name);  
    }  
    public void toHello1(String name) {  
        System.out.println("method hello1:" + name);  
    }  
  
}  
 

(编辑:文章分享网_茂名站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读