spring-MVC源碼解讀(一)

一、mcv總體架構和流程

圖片描述

  • 用戶發送請求至前端控制器 DispatcherServlet
  • DispatcherServlet 收到請求調用 HandlerMapping 處理器映射器
  • 處理器映射器根據請求 url 找到具體的處理器,生成處理器對象及處理器攔截器(若是有則生成)一併返回給 DispatcherServlet
  • DispatcherServlet 經過 HandlerAdapter 處理器適配器調用處理器Handler
  • Handler執行處理器鏈(Controller,也叫後端控制器)
  • Controller 執行完成返回 ModelAndView
  • HandlerAdapter 將 controller 執行結果 ModelAndView 返回給 DispatcherServlet
  • DispatcherServlet 將 ModelAndView 傳給 ViewReslover 視圖解析器
  • ViewReslover 解析後返回具體 View
  • DispatcherServlet傳遞Model 對 View 進行渲染視圖(即將模型數據填充至視圖中)
  • DispatcherServlet 響應用戶

二、SpringMVC 框架組件概述

在 SpringMVC 的各個組件中,處理器映射器、處理器適配器、視圖解析器稱爲 SpringMVC 的三大組件。前端

  • DispatcherServlet:前端控制器程序員

    用戶請求到達前端控制器,它就至關於 MVC 模式中的 C 層,DispatcherServlet 是整個流程控制的中心,由它調用其它組件處理用戶的請求,DispatcherServlet 的存在下降了組件之間的耦合性。
  • HandlerMapping:處理器映射器web

    HandlerMapping 負責根據用戶請求 url 找到 Handler 處理器,SpringMVC 提供了不一樣的映射器實現不一樣的映射方式,如配置文件方式、實現接口方式、註解方式等。
  • Handler:處理器spring

    Handler 是繼 DispatcherServlet 前端控制器的後端控制器,在 DispatcherServlet 的控制下 Handler 對具體的用戶請求進行處理。因爲 Handler 涉及到具體的用戶業務請求,因此通常狀況須要程序員根據業務需求開發 Handler 。
  • HandlAdapter:處理器適配器後端

    經過 HandlerAdapter 對處理器進行執行,這是適配器模式的應用,經過擴展適配器能夠對更多類型的處理器進行執行。
  • ViewResolver:視圖解析器架構

    View Resolver 負責將處理結果生成 View 視圖,View Resolver 首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View 視圖對象,最後對View進行渲染將處理結果經過頁面展現給用戶。
  • View:視圖mvc

    SpringMVC 框架提供了不少的 View 視圖類型的支持,w而咱們開發中最經常使用的視圖是 jsp 。

三、SpringMVC 配置詳解

springmvc.xmlapp

  • 配置組件掃描器框架

    <context:component-scan base-package="com.springmvc.controller" />
  • 配置處理器映射器jsp

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
  • 配置處理器適配器

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
  • 配置註解驅動

    <mvc:annotation-driven />
  • 配置視圖解析器

    <bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 配置邏輯視圖的前綴 -->
    <property name="prefix" value="/jsp/" />
    <!-- 配置邏輯視圖的後綴 -->
    <property name="suffix" value=".jsp" />
    </bean>
  • 最終 jsp 物理地址:前綴 + 邏輯視圖名 + 後綴,以上是springMvc的基本配置骨架,其中的組件均可以自由詳細配置。
相關文章
相關標籤/搜索