檢視呼叫流程
1. 從日誌入手
2021-01-16 11:01:22.671 info 3969 --- [-work-threads-8] o.d.soul.plugin.base.abstractsoulplugin : divide selector success match , selector name :/http
2021-01-16 11:01:22.672 info 3969 --- [-work-threads-8] o.d.s.plugin.httpclient.webclientplugin : the request urlpath is retrytimes is 0
2. 檢視webclientplugin類@override
public boolean skip(final serverwebexchange exchange)
3 檢視呼叫棧這裡的意思,根據是否跳過外掛程式,如果跳過,那麼繼續執行 execute,也就是說這個外掛程式不起作用。 如果不跳過,就執行外掛程式的execute方法
@override
public monoexecute(final serverwebexchange exchange)
return plugin.execute(exchange, this);
}return mono.empty();
});}
4 檢視soulplugin介面,新增日誌/**
webclient end execute 1610771874435
總結
我們從日誌入手,通過打斷點,檢視呼叫棧,找到了soul閘道器呼叫各種外掛程式的基本流程。
基於這種設計思路,soul可以靈活的裝配外掛程式,非常容易擴充套件。如果後續還要新增什麼功能,只需要實現soulplugin
這個介面,或者繼承abstractsoulplugin
抽象類,重寫自己的excute
方法,就可以了。
這是一種責任鏈模式,之前看過okhttp
的原始碼,也是用責任鏈模式實現的。如果不使用這種模式的話,後續擴充套件維護,新增功能**改動會比較大。設計模式都是前人在工程實踐中總結的寶貴經驗,應該學習並應用實踐。
責任鏈模式相當於一種流水線,在這個流水線上面每個模組負責自己的工作。
後續看看soul裡面,應該還有其他的設計模式,也要注意學習一下。
Android 從入門到高階
本場 chat 適合有一定程式設計基礎的人學習。第一部 android 智慧型手機發布於 2008 年 10 月。android 逐漸擴充套件到平板電腦及其他領域上,如電視 數位相機 遊戲機 智慧型手錶等。2011 年第一季度,android 在全球的市場份額首次超過塞班系統,躍居全球第一。2014...
區塊鏈從入門到放棄
乙個完整的 整理帖,所以到處蒐羅搬運了一些覺得挺不錯的來,直接貼鏈結應該不算侵權吧 入門介紹與原理 一 位元幣 1.位元幣 這是一切的開始 2.精通位元幣 講位元幣很詳細的一本書,看完基本對位元幣的認識就清楚了。3.theproof of work concept pow機制理論介紹,英文 4.位元...
Go語言從入門到高階
3.條件和迴圈 4.函式 5.陣列和指標 6.結構體和切片 7.集合 8.併發 9.通道 練習package main import fmt func main package main var a 菜鳥教程 var b string runoob.com var c bool var x,y in...