首页 | 联系我们 | 叶凡网络官方QQ群:323842844
游客,欢迎您! 请登录 免费注册 忘记密码
您所在的位置:首页 > 开发语言 > Java开发 > 正文

动态代理(dyanmic proxy)

作者:cocomyyz 来源: 日期:2013-08-04 23:26:48 人气:3 加入收藏 评论:0 标签:java

IHello.java

package com.brj.springDemo;

public interface IHello {

public abstract void hello();

}


Hello.java

package com.brj.spring;

public class Hello implements IHello {

public void hello() {
  System.out.println("Hello!");
}

}

LogHandler.java

package com.brj.spring;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class LogHandler implements InvocationHandler {

private Object target;

public Object bind(Object target) {
  this.target = target;
 
  return Proxy.newProxyInstance(
    target.getClass().getClassLoader(),
    target.getClass().getInterfaces(),
    this);
}

public Object invoke(Object arg0, Method arg1, Object[] arg2)
   throws Throwable {
  System.out.println("add log before...");
  Object result = null;
  result = arg1.invoke(target, arg2);
  return result;
}
}


Speak.java

package com.brj.spring;

public class Speak {

public void speak(){
  System.out.println("speak...");
}

}


Test.java

package com.brj.spring;

public class Test {


public static void main(String[] args) {
  LogHandler logHandler = new LogHandler();
       
       IHello proxy = (IHello) logHandler.bind(new Hello());
       proxy.hello();
       
       //Speak prox = (Speak) logHandler.bind(new Speak());
       //prox.speak();
}

}


本文网址:http://www.mingyangnet.com/html/java/152.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
更多>>网友评论
发表评论
编辑推荐
  • 没有资料