Dubbo剖析-服務(wù)消費方Invoker到客戶端接口的轉(zhuǎn)換

一、前言

前面dubbo整體架構(gòu)分析里面我們講解了服務(wù)消費者消費一個服務(wù)的詳細過程是,首先 調(diào)用 Protocol 的 refer 方法生成 Invoker 實例,接下來把Invoker 轉(zhuǎn)換為客戶端需要的接口(如:UserServiceBo),本文來講解第二個環(huán)節(jié)的實現(xiàn)

image.png

二、Invoker到客戶端接口的轉(zhuǎn)換

Invoker到客戶端接口的轉(zhuǎn)換是下面代碼完成的:

image.png

其中proxyFactory是代理類的擴展接口,默認情況下這里調(diào)用getProxy返回的spi擴展實現(xiàn)類是JavassistProxyFactory,也就是這里是調(diào)用了JavassistProxyFactory的getProxy方法,getProxy代碼如下:

image.png

該代碼的作用是對接口interfaces進行代理,并使用InvokerInvocationHandler對具體調(diào)用進行攔截。InvokerInvocationHandler中的invoker就是服務(wù)消費方遠程服務(wù)到Invoker轉(zhuǎn)換的invoker。

三、總結(jié)

服務(wù)消費方遠程服務(wù)到Invoker的轉(zhuǎn)換,是通過 ReferenceConfig 類的 init 方法調(diào)用 Protocol 的 refer 方法生成 Invoker 實例,這是服務(wù)消費的關(guān)鍵。

歡迎大家加入微信掃碼進入知識星球進行深入探討


121、.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 坐在公交車?yán)铮]上眼準(zhǔn)備休息一下。耳邊響起一個清脆悅耳的聲音“阿刁 住在西藏的某個地方 禿鷲 一樣 棲息...
    竹葉兒YS閱讀 893評論 0 0
  • 你圓滿的時候 心中滿是光亮 連地上的小草 都能感到快樂 你悲傷的時候 好像缺失了一大塊 濃濃的黑沉 壓住了你大半的...
    若有悲歡閱讀 252評論 0 1
  • 在我書房的窗前,正正有盞清白的路燈。夜晚坐于窗前,它似月亮般灑下清輝。不不不,并不刺眼,它在院中小徑的那一邊,而我...
    嵩嵩穿著紅舞鞋閱讀 356評論 0 1
  • 周末在家研究了一下bootstrap-sass 的源代碼,發(fā)現(xiàn)自己對于選擇器還不是很明白。做了一些筆記和大家分享。...
    robinhwang閱讀 1,866評論 0 6

友情鏈接更多精彩內(nèi)容