Spring 之 SpringMVC運行時序圖以及源碼解析

SpringMVC運行時序圖

SpringMVC工作機制

1.ApplicationContext初始化時用Map保存所有的url和controller對應關係。
2.根據請求URL找到對應的controller,並從controller中找到對應的請求方法。
3.Request參數綁定到方法的形參,執行方法處理請求,並返回結果視圖。

初始化階段

在DispatcherServlet的父類HttpServletBean中可以找到初始化的init()方法,在init()方法中又會調用FrameworkServlet類的initServletBean()方法,最終會調用refresh()方法,這部分代碼最主要的邏輯是初始化IOC容器。

IOC容器初始化完成之後會調用DispatcherServlet類的onRefresh()方法,完成SpringMVC九大組件的初始化

URL和controller建立關係

HandlerMapping的子類AbstractDetectingUrlHandlerMapping實現了initApplicationContext()方法,該方法的作用是通過獲得ApplicationContext對象,得到該容器中所有的beanName,在對beanNames進行遍歷得到bean上的URL,並由registerHandler方法進行註冊。

運行調用階段

當我們從瀏覽器端發出請求時,入口爲DispatcherServlet的核心方法doService(),其中核心邏輯有doDispatch()實現。在doDispatch()方法中調用getHandler方法取得當前請求的controller,getHandler()方法會把request請求包裝成HandlerExecutionChain對象。然後由HandlerExecutionChain對象進行後續操作,最終結果是返回ModelAndView視圖。

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