Hadoop RPC热身之Java 动态代理,hadooprpc


生活中,大家接触各种各样的代理,医学行业有个药代(听说也很赚钱)。代理其实就一种委托。

言归正传,你是个类,我也是个类,你委托我来执行你的方法。你是我的,我还是我的。所以我可以在调用你的方法之前,之后执行一些操作。

为什么要使用代理呢,网上会告诉你可以使用事务啊,日志啊。举个应用例子,Spring的AOP(面向切面编程)。

动态代理的使用过程如下:

创建一个业务接口(1),并提供实现类,这个叫目标类。再创建一个类(2)实现InvocationHandler接口,在实现方法invoke中你可以添加诸如事务,日志的操作。

使用的时候,通过Proxy这个类给你创建一个代理类。当然,你要给他这些参数:相同的类加载器,业务接口(1),InvocationHandler实现类(2)。这样你就可以

使用得到的proxy了。

比如打印hadoop版本代码如下:

业务类1实现业务接口

业务类2实现业务接口

测试,里面有两个类。

运行结果如下:


以后有机会会把动态代理实现机制贴出来,对分析Hadoop RPC机制够用了

相关内容