帶着問題學 Spring MVC 源碼: 1、概述

摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 但願轉載,保留摘要,謝謝!html

簡單就好,生活能夠很德國web

Q:什麼是 Spring MVC ? ※spring

Spring MVC 是 Spring Web 的一個重要模塊。Spring 支持 Web 應用,Spring MVC 是對 MVC 模式的支持。json

Q:MVC 模式? ※websocket

MVC 模式是種經典的軟件架構,分 Model 模型、View 視圖及 Controller 控制器 三種角色。架構的意圖明顯區分三種角色的職責,使其不相互依賴。Java 領域最經典的實現 JSP + Servlet + JavaBean,後續也陸續出來了衆多優秀框架,SSH 中的 Struts ,還有 SSM 中的 Spring MVC 等。mvc%e6%a8%a1%e5%bc%8f架構

 

Q: Spring 還要什麼其餘模塊? Web?IOC 容器?AOP?※mvc

IOC 容器模塊、AOP 模塊都是。還有數據訪問/集成、Web 等模塊都是。這裏其餘不展開講,其中 Web 模塊創建在 IOC 容器之上,要記住。app

來自官網的模塊圖:spring-overview框架

Q: Web 模塊包含 springmvc 嗎? ※socket

包含。Web 模塊包含 spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet。其中 web-mvc 是咱們要學習源碼包。

1. spring-web 模塊提供基本 Web 集成功能,包括初始化 IOC 容器等工做。

2. spring-webmvc 包含 MVC 模式的實現和 REST Web 服務的實現。該模塊基於了 spring-web 模塊。

資料來源自:官方文檔 MVC 章節,其餘模塊具體參考官網。

 

Q: spring-webmvc 模塊具體包含什麼內容? ※

spring-webmvc 模塊裏面包:

  • org.springframework.web.servlet
    提供與應用程序上下文基礎結構集成的 Servlet,以及 Spring web MVC 框架的核心接口和類。
  • org.springframework.web.servlet.mvc
    Spring 附帶的 Servlet MVC 框架的標準控制器實現。

     

    • org.springframework.web.servlet.mvc.annotation
      用於基於註解的 Servlet MVC 控制器的支持包。
    • org.springframework.web.servlet.mvc.condition
      用於根據條件匹配傳入請求的公共 MVC 邏輯。
    • org.springframework.web.servlet.mvc.method
      用於處理程序方法處理的基於 Servlet 的基礎結構,基於在 org.springframework.web.method 包上。
  • org.springframework.web.servlet.view
    提供標準的 View 和 ViewResolver 實現,包括自定義實現的抽象基類。

     

    • org.springframework.web.servlet.view.freemarker
      支持將 FreeMarker 集成爲 Spring Web 視圖技術的類。
    • org.springframework.web.servlet.view.json
      支持提供基於 JSON 序列化的 View 實現的類。

上面列出來核心的包。org.springframework.web.servlet.view 包中, View 視圖實現有常見的:JSON 、FreeMarker 等。org.springframework.web.servlet.mvc 包中,Controller 控制層實現包括了註解、程序方法處理等封裝。天然,看源碼先從 org.springframework.web.servlet 包看其核心的接口和類。

Q: 核心類和接口有哪些? ※

DispatcherServlet 類:調度HTTP請求控制器(或者處理器Handler)。

 

View 視圖層

ModelAndView 類:模型和視圖的持有者。

View 接口:MVC WEB 交互。該接口的實現負責呈現視圖或者暴露模型。

 

Controller 控制層

HandlerMapping 接口: 請求從 DispacherServlet 過來,該接口定義請求和處理程序對象之間的映射。

HandlerInterceptor 接口:處理程序的執行連接口。

Q: 又是 MVC 的樣子,還有嗎? ※

哦。對了還有張圖:

mvc

因此重要的類還有 ViewResolver、HandleAdapter等。

Q: 謝謝,下篇聊什麼?

固然聊重要類的源碼實現咯~,下篇見。

如以上文章或連接對你有幫助的話,別忘了在文章結尾處評論哈~ 你也能夠點擊頁面右邊「分享」懸浮按鈕哦,讓更多的人閱讀這篇文章。

相關文章
相關標籤/搜索