Hadoop RPC热身之Java 动态代理,hadooprpc
Hadoop RPC热身之Java 动态代理,hadooprpc
生活中,大家接触各种各样的代理,医学行业有个药代(听说也很赚钱)。代理其实就一种委托。
言归正传,你是个类,我也是个类,你委托我来执行你的方法。你是我的,我还是我的。所以我可以在调用你的方法之前,之后执行一些操作。
为什么要使用代理呢,网上会告诉你可以使用事务啊,日志啊。举个应用例子,Spring的AOP(面向切面编程)。
动态代理的使用过程如下:
创建一个业务接口(1),并提供实现类,这个叫目标类。再创建一个类(2)实现InvocationHandler接口,在实现方法invoke中你可以添加诸如事务,日志的操作。
使用的时候,通过Proxy这个类给你创建一个代理类。当然,你要给他这些参数:相同的类加载器,业务接口(1),InvocationHandler实现类(2)。这样你就可以
使用得到的proxy了。
比如打印hadoop版本代码如下:
业务类1实现业务接口
业务类2实现业务接口
测试,里面有两个类。
运行结果如下:
以后有机会会把动态代理实现机制贴出来,对分析Hadoop RPC机制够用了
评论暂时关闭