麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

SpringMVC的執(zhí)行過程淺析

2024-07-14 08:43:54
字體:
供稿:網(wǎng)友

前言

通過深入分析Spring源碼,我們知道Spring框架包括大致六大模塊, 如Web模塊,數(shù)據(jù)庫訪問技術(shù)模塊,面向切面模塊,基礎(chǔ)設(shè)施模塊,核心容器模塊和模塊,

其中,在Spring框架的Web模塊中,又包含很多前端技術(shù),如SpringMVC,Spring WebSocket,Spring WebPortlet等,在本篇文章中,我們主要分析SpringMVC模塊,

在分析SpringMVC技術(shù)時,本篇文章將通過解讀SpringMVC源碼,并通過編譯器斷點調(diào)試追蹤,研究Spring核心類的UML圖,來深入剖析SpringMVC的執(zhí)行過程。

一 Spring核心模塊

下圖為Spring核心模塊,其中SpringMVC模塊位于Spring框架的Web模塊部分

SpringMVC,執(zhí)行過程

二 SpringMVC執(zhí)行原理

下圖為SpringMVC的一個較完整的流程圖,實線表示SpringMVC框架提供的技術(shù),不需要開發(fā)者實現(xiàn),虛線表示需要開發(fā)者實現(xiàn)。

簡要分析執(zhí)行流程:

1.DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心。用戶發(fā)出請求,DispatcherServlet接收請求并攔截請求,

我們假設(shè)請求的url為:

http://localhost:9999/SpringMVC/input-product

如上url拆分成三部分:

(1)http://localhost:9999 服務(wù)器域名

(2)SpringMVC部署在服務(wù)器(http://localhost:9999)上的web站點

(3)input-product表示控制器

通過分析,如上url表示為:請求位于服務(wù)器localhost:9999上的SpringMVC站點的input-product控制器

2.HandlerMapping為處理器映射。DispatcherServlet調(diào)用HandlerMapping,HandlerMapping根據(jù)請求url查找Handler

3.HandlerExecution表示具體的Handler,其主要作用是根據(jù)url查找控制器,如上url被查找控制器為:input-product

4.HandlerExecution將解析后的信息傳遞給DispatcherServlet,如解析控制器映射等

5.HandlerAdapter表示處理器適配器,其按照特定的規(guī)則去執(zhí)行Handler

6.Handler讓具體的Controller執(zhí)行

7.Controller將具體的執(zhí)行信息返回給HandlerAdapter,如ModelAndView

8.HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet

9.DispatcherServlet調(diào)用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名

10.視圖解析器將解析的邏輯視圖名傳給DispatcherServlet

11.DispatcherServlet根據(jù)視圖解析器解析的視圖結(jié)果,調(diào)用具體的視圖

12.最終視圖呈現(xiàn)給用戶。

SpringMVC,執(zhí)行過程

三 SpringMVC核心組件

(一)DispatcherServlet

DispatcherServlet就是所謂的SpringMVC前端控制器,作為整個SpringMVC的控制中心,,其相關(guān)UML如下所示:

SpringMVC,執(zhí)行過程

(二)HandlerMapping

HandlerMapping主要用來解析請求url,解析出控制器,從而映射控制器,其相關(guān)類有16個。

SpringMVC,執(zhí)行過程

如下為HandlerMapping的UML圖

SpringMVC,執(zhí)行過程

(三)HandlerAdapter

HandlerAdapter主要是調(diào)度Controller來處理業(yè)務(wù)邏輯等,想相關(guān)類有6個。

SpringMVC,執(zhí)行過程

如下為HandlerAdapter的UML:

SpringMVC,執(zhí)行過程

(四)ViewResolver

ViewResolver接口主要作用是解析DispatcherServlet傳遞的邏輯視圖名,并將解析結(jié)果傳回給DispatcherServlet。實現(xiàn)該接口的相關(guān)類或接口共有19個。

SpringMVC,執(zhí)行過程

如下為ViewResolver主要的UML:

SpringMVC,執(zhí)行過程

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久草在线看 | 成人国产精品色哟哟 | 九九热在线精品视频 | 国产午夜电影 | 一级毛片在线观看免费 | 日韩毛片免费观看 | 久久国产精品小视频 | 成人偷拍片视频在线观看 | 久久久久久久久久久久久久久久久久 | 久久丝袜脚交足黄网站免费 | 亚洲视频综合网 | 国产精品视频免费在线观看 | 7777在线观看 | 亚洲成人激情av | 91精品久久久久久久久 | 国产做爰 | 91精品国产日韩91久久久久久360 | 午夜视频在线观看免费视频 | 亚洲第五色综合网 | 一级黄色影院 | 国产精品99久久久久久大便 | 欧美特黄一级高清免费的香蕉 | 久久国产夫妻视频 | 久久精品99北条麻妃 | 久久美女免费视频 | 成人视屏免费看 | 国产成人自拍视频在线 | 精品成人av一区二区三区 | 国产精品1区2区在线观看 | 日韩.www | 国产精品剧情一区二区三区 | 欧美一级片免费在线观看 | 午色影院 | 久久国产精品免费视频 | 91在线色视频 | 欧美黄 片免费观看 | 亚洲综合91 | 亚洲成人中文字幕在线 | 91精品国产九九九久久久亚洲 | 亚洲午夜1000理论片aa | 香蕉视频1024 |