soul從入門到高階03 外掛程式鏈呼叫流程

2021-10-16 07:14:04 字數 3411 閱讀 9745

檢視呼叫流程

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...