摘要:最近公司內部系統相互通信調用用到了的機制后來有空研究了一下的機制在這里做一個簡單的摘要有不對的地方希望指正首先看客戶端的基礎類他是一個工廠意味著他具有包裝的功能當你調用的的的方法返回的并不是他本身而是被他包裝過得下圖的箭頭及包裝的地方實際上
最近公司內部系統相互通信調用用到了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利用了序列化的機制,封裝了多種序列化的工具類,具體可以參考源碼包;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68980.html
摘要:相比,更簡單快捷。采用的是二進制協議,因為采用的是二進制協議,所以它很適合于發送二進制數據。創建接口創建實現類類端在這個包下服務端包類將服務端的代碼打包安裝到本地倉庫,打開瀏覽器輸入即可。 前言 看了其他的文章發現,大多數都是只寫了關鍵的部分,對于一個初學者來說只能明白用了什么東西,但實際動手發現,項目還存在一些問題,通過本篇文章,可以避免一些問題,節省一些時間成本。 Hessian簡...
摘要:但是只不過都是以二進制的形式編碼的。這其實相當于綜合了和二進制共同優勢的一個協議。在上面的架構中,如果使用二進制的方式進行序列化,雖然不用協議文件來生成,但是對于接口的定義,以及傳的對象,還是需要共享。 ????前面我們認識了兩個常用文本類的 RPC 協議,對于陌生人之間的溝通,用 NBA、CBA 這樣的縮略語,會使得協議約定非常不方便。 ????在講 CDN 和 DNS 的時候,我們...
摘要:但是只不過都是以二進制的形式編碼的。這其實相當于綜合了和二進制共同優勢的一個協議。在上面的架構中,如果使用二進制的方式進行序列化,雖然不用協議文件來生成,但是對于接口的定義,以及傳的對象,還是需要共享。 ????前面我們認識了兩個常用文本類的 RPC 協議,對于陌生人之間的溝通,用 NBA、CBA 這樣的縮略語,會使得協議約定非常不方便。 ????在講 CDN 和 DNS 的時候,我們...
摘要:對于與而言,則可以看做是消息傳遞技術的一種衍生或封裝。在生產者通知消費者時,傳遞的往往是消息或事件,而非生產者自身。通過消息路由,我們可以配置路由規則指定消息傳遞的路徑,以及指定具體的消費者消費對應的生產者。采用和來進行遠程對象的通訊。 消息模式 歸根結底,企業應用系統就是對數據的處理,而對于一個擁有多個子系統的企業應用系統而言,它的基礎支撐無疑就是對消息的處理。與對象不同,消息本質上...
摘要:微軟的雖然引入了事件機制,可以在隊列收到消息時觸發事件,通知訂閱者。由微軟作為主要貢獻者的,則對以及做了進一層包裝,并能夠很好地實現這一模式。 在分布式服務框架中,一個最基礎的問題就是遠程服務是怎么通訊的,在Java領域中有很多可實現遠程通訊的技術,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關系呢,它們背后到底是基...
閱讀 2870·2021-11-16 11:55
閱讀 2614·2021-09-29 09:34
閱讀 3426·2021-09-01 14:21
閱讀 3771·2019-08-29 12:36
閱讀 702·2019-08-26 10:55
閱讀 3979·2019-08-26 10:20
閱讀 1031·2019-08-23 18:19
閱讀 1199·2019-08-23 17:56