首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JDK的动态署理机制

2012-09-27 
JDK的动态代理机制JDK的动态代理机制JDK的动态代理是jdk1.3及以上版本提供的一种编程方法,它为一些面向切

JDK的动态代理机制
JDK的动态代理机制

JDK的动态代理是jdk1.3及以上版本提供的一种编程方法,它为一些面向切面的操作如性能检测,权限验证,日志记录等提供了一种解决方案。它是在被代理类的某个方法在执行前后,通过代理类执行一些新的逻辑。下面通过一个例子加以说明。
1.JDK的动态代理,必须要有一个接口,所以先定义一个接口,:

public class TestProxy {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub         //new 一个被代理对象         ProxyInterface pi = new ProxyClass();         //new一个代理对象         Proxyhandler ph = new Proxyhandler();         //将被代理对象赋给代理对象         ph.setPi(pi);                  //通过代理机制生成一个新的被代理对象         ProxyInterface p =          (ProxyInterface) Proxy.newProxyInstance(pi.getClass().getClassLoader(),new Class[]{ProxyInterface.class}, ph);         //执行代理方法         p.execute();}}

输出结果如下:

------Before execute------------
execute method
------After execute-------------

通过以上代码,就实现了一个非常简单的JDK动态代理,但它有个缺点,就是必须要有接口,如果是继承类的话,它就无法实现动态代理了。不过这可以用CGLIB动态代理来解决。

热点排行