您的位置:首页 > 编程语言 > Java开发

关于在JAVA中如何实现简单的动态代理

2015-01-04 16:01 387 查看
在JAVA中代理分为两种:1.静态代理 2.动态代理。

今天我们要说的就是第二种代理:动态代理。

代理,顾名思义,就好比一家商店,你买商品不用去生产厂,直接到商店就可以购买,而且可以买到各种各种不单一的商品。

此处,购买多种就体现了代理的重要性。在JAVA中,你需要为多个类增加一些额外的功能,例如 记录日志,增加权限等..都可以使用代理来实现。

在JAVA中实现动态代理很简单,只需要以下几步就可以轻松完成,下面我们来看具体实现步骤。

首先,第一步:你需要为被代理类做一个高层次的解耦,这样就可以实现为不同的类提供相同的代理,即实现一个规范接口。



第二步:编写几个你要代理的类,并且该类需要实现第一步中的接口,在该类中实现接口中定义的方法。



第三步:定义一个代理类,此类需要实现InvocationHandler接口,此处最为关键。在代理类中,你需要将代理类和被代理类进行关联。所以首先需要创建一个Object类型的对象,用来关联被代理者类。

其次还要自行编写一个方法,我们叫它绑定方法,即将代理者和被代理者绑定关联关系,方法返回值是Object,即被代理者实现的接口。

最后,我们要实现InvocationHandler接口中的方法:invoke(Object proxy,Method method,Object[] args)方法。

在改方法的参数中,第一个参数即为代理类对象,第二个为所代理的方法,第三个为方法中的参数。

在改方法中进行业务逻辑的判断,并添加一些额外的操作,例如增加记录日志的功能,然后调用method.invoke()。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: