源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java实现动态代理示例分享

  • 时间:2020-06-07 22:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java实现动态代理示例分享
[u]复制代码[/u] 代码如下:
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class LogHandler implements InvocationHandler {     private Object delegate;     public Object bind(Object delegate) {         this.delegate = delegate;         return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),                 delegate.getClass().getInterfaces(), this);     }     @Override     public Object invoke(Object proxy, Method method, Object[] args)             throws Throwable {         Object result = null;         try {             System.out.println("方法开始:" + method);             result = method.invoke(delegate, args);             System.out.println("方法结束:" + method);         } catch (Exception e) {             e.printStackTrace();         }         return result;     } }
[u]复制代码[/u] 代码如下:
public interface Animal {     public void hello(); }
动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。
[u]复制代码[/u] 代码如下:
public class Monkey implements Animal {     @Override     public void hello() {         // TODO Auto-generated method stub         System.out.println("hello");     } }
[u]复制代码[/u] 代码如下:
public class Main {     public static void main(String[] args) {         LogHandler logHandler = new LogHandler();         Animal animal = (Animal) logHandler.bind(new Monkey());         animal.hello();     } }
[img]http://files.jb51.net/file_images/article/201403/20140321150936.jpg?2014221151043[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部