分享知識-快樂自己:SpringMVC 底層執行原理解析
底層實現原理圖:
觀看底層程式碼:
1):開啟 web.xml 檔案
2):按住 Ctrl + 滑鼠左鍵 進入底層檢視原始碼
3):按住 Ctrl+o 找到對應的方法doDispatch
5):找到下面的程式碼:
根據我們的請求找到需要執行的Handler(Controller)ctrl+滑鼠左鍵 點進getHandler() 發現這個方法的返回值就是一個處理器執行鏈!
6):進入getHandler之後找到下面的程式碼:繼續進入這裡的hm.getHandler(request)
--
進入之後,發現這個方法是一個介面(HandlerMapping)中的方法,沒有方法實現,所以繼續點選實現類AbstractHandlerMapping
7):之後發現把獲取到的處理器執行鏈給了我們的核心控制器:回到 DispatcherServlet 類中的 doDispatch 方法中
點進去getHandlerAdapter();
8): 再點進去supports():
發現supports()再介面中,但是有5個實現類,springmvc預設會執行3個;
但是我們寫的HelloController間接的實現了Controller介面,所以我們只需要在SimpleControllerHandlerAdapter中打斷點即可!
把拿到的HandlerAdapter返回給了核心控制器
9):核心控制器中有了處理器介面卡,接下來就改執行真正的程式碼了:回到
找到以下程式碼:點進去handle
同樣有多個實現類:在上述說到我們現在實現的是 Controller 型別的,所以我們只關注 SimpleControllerHandlerAdapter 就可以了。
--
--
--
--------------------------------------------------------------------------------
以上內容若有不足之處:請多多請教
如要轉載請註明小編本站地址:(https://www.cnblogs.com/mlq2017/)