最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年03月08日 10:38:12   作者:Alan_beijing  
這篇文章主要給大家介紹了關于SpringMVC的執(zhí)行過程的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者使用SpringMVC具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

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

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

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

一 Spring核心模塊

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

二 SpringMVC執(zhí)行原理

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

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

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

我們假設請求的url為:

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

如上url拆分成三部分:

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

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

(3)input-product表示控制器

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

2.HandlerMapping為處理器映射。DispatcherServlet調用HandlerMapping,HandlerMapping根據請求url查找Handler

3.HandlerExecution表示具體的Handler,其主要作用是根據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調用視圖解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯視圖名

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

11.DispatcherServlet根據視圖解析器解析的視圖結果,調用具體的視圖

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

三 SpringMVC核心組件

(一)DispatcherServlet

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

(二)HandlerMapping

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

如下為HandlerMapping的UML圖

(三)HandlerAdapter

HandlerAdapter主要是調度Controller來處理業(yè)務邏輯等,想相關類有6個。

如下為HandlerAdapter的UML:

(四)ViewResolver

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

如下為ViewResolver主要的UML:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • Spring Boot中的Properties的使用詳解

    Spring Boot中的Properties的使用詳解

    這篇文章主要介紹了Spring Boot中的Properties的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Java  隊列 Queue 用法實例詳解

    Java 隊列 Queue 用法實例詳解

    本文實例講述了Java內置隊列類Queue用法,分享給大家供大家參考
    2017-04-04
  • Java RPC框架過濾器機制原理解析

    Java RPC框架過濾器機制原理解析

    這篇文章主要介紹了Java RPC框架過濾器機制原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java開發(fā)深入分析講解二叉樹的遞歸和非遞歸遍歷方法

    Java開發(fā)深入分析講解二叉樹的遞歸和非遞歸遍歷方法

    樹是一種重要的非線性數(shù)據結構,直觀地看,它是數(shù)據元素(在樹中稱為結點)按分支關系組織起來的結構,很象自然界中的樹那樣。樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示,本篇介紹二叉樹的遞歸與非遞歸遍歷的方法
    2022-05-05
  • 詳解使用Jenkins自動編譯部署web應用

    詳解使用Jenkins自動編譯部署web應用

    本篇主要介紹基于Jenkins實現(xiàn)持續(xù)集成的方式,通過案例介紹線上自動編譯及部署的配置過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • RabbitMQ使用SpringAMQP的配置方法

    RabbitMQ使用SpringAMQP的配置方法

    這篇文章主要介紹了RabbitMQ使用SpringAMQP的配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • 談談你可能并不了解的java枚舉

    談談你可能并不了解的java枚舉

    這篇文章主要給大家介紹了一些關于你可能并不了解的java枚舉的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • java stream中Collectors的用法實例精講

    java stream中Collectors的用法實例精講

    這篇文章主要為大家介紹了java stream中Collectors的用法實例精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 教你使用Java獲取當前時間戳的詳細代碼

    教你使用Java獲取當前時間戳的詳細代碼

    這篇文章主要介紹了如何使用Java獲取當前時間戳,通過兩個java示例,向大家展示如何獲取java中的當前時間戳,文本通過示例代碼給大家展示了java獲取當前時間戳的方法,需要的朋友可以參考下
    2022-01-01
  • Spring?Boot?使用斷言讓你的代碼在上線前就通過“體檢”(最新整理)

    Spring?Boot?使用斷言讓你的代碼在上線前就通過“體檢”(最新整理)

    斷言是一種編程技巧,用于在代碼中插入檢查點,驗證程序的狀態(tài)是否符合預期,如果斷言失敗,程序會拋出一個錯誤,幫助你快速發(fā)現(xiàn)和修復bug,本文給大家介紹Spring?Boot?斷言:讓你的代碼在上線前就通過“體檢”,感興趣的朋友一起看看吧
    2025-03-03

最新評論

景东| 加查县| 武定县| 福建省| 玉屏| 白河县| 祥云县| 新建县| 庐江县| 宜昌市| 陇川县| 资中县| 白山市| 辉南县| 富裕县| 江华| 罗江县| 虎林市| 五峰| 班玛县| 孝昌县| 綦江县| 乐山市| 铜陵市| 囊谦县| 于田县| 安平县| 昌吉市| 那坡县| 武乡县| 乌拉特后旗| 嵊州市| 武鸣县| 当阳市| 农安县| 五寨县| 萨嘎县| 安阳县| 若羌县| 繁峙县| 什邡市|