摘要:最近公司内部系统相互通信调用用到了的机制后来有空研究了一下的机制在这里做一个简单的摘要有不对的地方希望指正首先看客户端的基础类他是一个工厂意味着他具有包装的功能当你调用的的的方法返回的并不是他本身而是被他包装过得下图的箭头及包装的地方实际上
最近公司内部系统相互通信调用用到了spring的hessian机制,后来有空研究了一下spring hessian的机制,在这里做一个简单的摘要,有不对的地方希望指正;
首先看客户端的基础类HessianProxyFactoryBean,他是一个工厂bean,意味着他具有包装bean的功能,当你调用spring的ApplicationContext的getBean的方法返回的并不是他本身,而是被他包装过得bean,下图的箭头及包装bean的地方:
实际上是利用的spring的aop机制做了一个service interface的一个代理
2.既然是代理,就少不了Interceptor的拦截,HessianProxyFactoryBean本身继承了HessianClientInterceptor,并且拦截了方法的调用:
方法直接被hessianProxy对象调用,我们接下来看hessianProxy对象的创建:
进入到hessian的框架包,可以看到使用了jdk的动态代理,并且自己实现了InvocationHandler:HessianProxy
也就是说对象方法的执行会直接,使用HessianProxy代理器
2.查看HessianProxy代理器源码:
这里可以看到具体的执行过程:先对equals,hashCode,getHessianType,getHessianURL,toString做了特殊处理,然后创建了HessianConnection,AbstractHessianOutput,调用AbstractHessianOutput.call方法写入参数,核心的方法就是利用Serializer,hessian利用了序列化的机制,封装了多种序列化的工具类,具体可以参考源码包;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68980.html
摘要:相比,更简单快捷。采用的是二进制协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。创建接口创建实现类类端在这个包下服务端包类将服务端的代码打包安装到本地仓库,打开浏览器输入即可。 前言 看了其他的文章发现,大多数都是只写了关键的部分,对于一个初学者来说只能明白用了什么东西,但实际动手发现,项目还存在一些问题,通过本篇文章,可以避免一些问题,节省一些时间成本。 Hessian简...
摘要:但是只不过都是以二进制的形式编码的。这其实相当于综合了和二进制共同优势的一个协议。在上面的架构中,如果使用二进制的方式进行序列化,虽然不用协议文件来生成,但是对于接口的定义,以及传的对象,还是需要共享。 前面我们认识了两个常用文本类的 RPC 协议,对于陌生人之间的沟通,用 NBA、CBA 这样的缩略语,会使得协议约定非常不方便。 在讲 CDN 和 DNS 的时候,我们...
摘要:但是只不过都是以二进制的形式编码的。这其实相当于综合了和二进制共同优势的一个协议。在上面的架构中,如果使用二进制的方式进行序列化,虽然不用协议文件来生成,但是对于接口的定义,以及传的对象,还是需要共享。 前面我们认识了两个常用文本类的 RPC 协议,对于陌生人之间的沟通,用 NBA、CBA 这样的缩略语,会使得协议约定非常不方便。 在讲 CDN 和 DNS 的时候,我们...
摘要:对于与而言,则可以看做是消息传递技术的一种衍生或封装。在生产者通知消费者时,传递的往往是消息或事件,而非生产者自身。通过消息路由,我们可以配置路由规则指定消息传递的路径,以及指定具体的消费者消费对应的生产者。采用和来进行远程对象的通讯。 消息模式 归根结底,企业应用系统就是对数据的处理,而对于一个拥有多个子系统的企业应用系统而言,它的基础支撑无疑就是对消息的处理。与对象不同,消息本质上...
摘要:微软的虽然引入了事件机制,可以在队列收到消息时触发事件,通知订阅者。由微软作为主要贡献者的,则对以及做了进一层包装,并能够很好地实现这一模式。 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基...
阅读 2845·2021-11-16 11:55
阅读 2585·2021-09-29 09:34
阅读 3366·2021-09-01 14:21
阅读 3710·2019-08-29 12:36
阅读 675·2019-08-26 10:55
阅读 3833·2019-08-26 10:20
阅读 1008·2019-08-23 18:19
阅读 1178·2019-08-23 17:56