談談你對Spring MVC理解【面試】

前言

Spring MVC是一種基於java,使用了MVC架構模式的思想,將Web層進行職責解耦,簡化我們日常Web開發。Spring MVC核心類是 DispatcherServlet,它是一個 Servlet,頂層是實現的Servlet接口。

1、Spring MVC的工作流程

在這裏插入圖片描述
上面的流程圖很清楚的展示了Spring MVC的工作流程,下面用文字來詳細說明下:

  1. 客戶端發起請求,直接請求到DispatcherServlet,DispatcherServlet收到請求後,不會自己處理,而是委託給其它的解析器處理,自己進行全局的流程控制。
  2. 首先,DispatcherServlet請求HandlerMapping進行處理,HandlerMapping會獲取HandlerExecutionChain對象(包含一個Handler處理器對象、多個HandlerInterceptor攔截器)。
  3. 解析到Handler處理器後,會使用HandlerAdapter對Handler處理器進行包裝。
  4. 然後,調用攔截器的preHandle方法進行攔截,返回true後,調用目標Handler的目標方法處理業務邏輯,得到ModelAndView對象,再調用攔截器的postHandle方法。
  5. ViewResolver 會根據ModelAndView 查找實際的 View。
  6. DispatcherServlet會將Model模型數據傳進來交給View進行渲染視圖。
  7. 調用攔截器的aferCompletion方法後,DispatcherServlet將渲染視圖返回給瀏覽器。

2、核心類

  1. DispatcherServlet(前端控制器)
    說明:Spring MVC 的入口函數,接收請求,響應結果,相當於轉發器,中央處理器,它就相當於mvc模式中的c,DispatcherServlet的存在降低了組件之間的耦合性。
  2. HandlerMapping(處理器映射器)
    說明:根據請求的url查找Handler(即處理器Controller),映射方式有配置文件方式,實現接口方式,註解方式等。
  3. HandlerAdapter(處理器適配器)
    說明:HandlerAdapter是適配器模式的應用,按照HandlerAdapter要求的規則去執行Handler。
  4. Handler(處理器)
    說明:Handler需要開發工程師按照HandlerAdapter的要求去做,是後端控制器,處理具體的業務邏輯。
  5. View resolver(視圖解析器)
    說明:進行視圖解析,首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。
  6. 視圖View
    說明:View是一個接口,實現類支持不同的View類型(jsp、freemarker、pdf等)

結束語

本篇介紹了spring mvc的工作流程,以及核心類。我們再看看日常開發編寫的Controller,自定義的HandlerInterceptor和View,是不是有了更深入的理解了。

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