Spring Cloud 2.2.2 源碼之二十二Feign執行原理一

執行原理

首先是springmvc分發調用到我們這個方法,因爲這個是代理對象,於是執行他的invoke方法。
在這裏插入圖片描述

FeignInvocationHandler的invoke

其實沒做什麼,就是直接調用方法處理映射的SynchronousMethodHandlerinvoke

在這裏插入圖片描述

SynchronousMethodHandler的invoke

創建了一個請求模板,設置參數,然後進行執行。
在這裏插入圖片描述

executeAndDecode

先進行目標請求的配置。
在這裏插入圖片描述
可以有攔截器攔截,最後纔是目標的配置。
在這裏插入圖片描述
設置請求目標,也就是URL
在這裏插入圖片描述
然後進行log輸出:
在這裏插入圖片描述
在這裏插入圖片描述
最後調用LoadBalancerFeignClient來執行。
在這裏插入圖片描述

LoadBalancerFeignClient的execute

先創建FeignLoadBalancer.RibbonRequest對象,其實就是封裝了一些請求信息。
在這裏插入圖片描述
然後獲取配置:
在這裏插入圖片描述
最終內部是這裏,說ribbon的時候說過SpringClientFactory會進行服務名和上下文的綁定,這裏傳進去就服務名,但是沒有上下文,會先創建AnnotationConfigApplicationContext,裏面註冊一些ribbon相關的配置,最後刷新,所以這裏就是把ribbon給初始化了:
在這裏插入圖片描述
後面就是要創建FeignLoadBalancer對象,來進行執行啦,下篇說吧。

好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章