SpringMVC 框架系列之組件概述與配置詳解
在上一篇文章 SpringMVC 框架系列之初識與入門實例 的實例中,我們已經知道,SpringMVC 框架是一個 web 層的框架,本篇文章就詳細解釋一下 SpringMVC 框架具體文件的配置以及相關組件的作用。
1、SpringMVC 架構詳解
(1)、SpringMVC 框架結構:
(2)、SpringMVC 框架結構執行流程
-
用戶發送請求至前端控制器 DispatcherServlet
-
DispatcherServlet 收到請求調用 HandlerMapping 處理器映射器
-
處理器映射器根據請求 url 找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一並返回給 DispatcherServlet
-
DispatcherServlet 通過 HandlerAdapter 處理器適配器調用處理器
-
執行處理器(Controller,也叫後端控制器)
-
Controller 執行完成返回 ModelAndView
-
HandlerAdapter 將 controller 執行結果 ModelAndView 返回給 DispatcherServlet
-
DispatcherServlet 將 ModelAndView 傳給 ViewReslover 視圖解析器
-
ViewReslover 解析後返回具體 View
-
DispatcherServlet 對 View 進行渲染視圖(即將模型數據填充至視圖中)
-
DispatcherServlet 響應用戶
2、SpringMVC 框架組件概述
在 SpringMVC 的各個組件中,處理器映射器、處理器適配器、視圖解析器稱為 SpringMVC 的三大組件。
(1)、DispatcherServlet:前端控制器
用戶請求到達前端控制器,它就相當於 MVC 模式中的 C 層,DispatcherServlet 是整個流程控制的中心,由它調用其它組件處理用戶的請求,DispatcherServlet 的存在降低了組件之間的耦合性。
(2)、HandlerMapping:處理器映射器
HandlerMapping 負責根據用戶請求 url 找到 Handler 處理器,SpringMVC 提供了不同的映射器實現不同的映射方式,如配置文件方式、實現接口方式、註解方式等。
(3)、Handler:處理器
Handler 是繼 DispatcherServlet 前端控制器的後端控制器,在 DispatcherServlet 的控制下 Handler 對具體的用戶請求進行處理。由於 Handler 涉及到具體的用戶業務請求,所以一般情況需要程序員根據業務需求開發 Handler 。
(4)、HandlAdapter:處理器適配器
通過 HandlerAdapter 對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。
(5)、ViewResolver:視圖解析器
View Resolver 負責將處理結果生成 View 視圖,View Resolver 首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View 視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。
(6)、View:視圖
SpringMVC 框架提供了很多的 View 視圖類型的支持,w而我們開發中最常用的視圖是 jsp 。
3、SpringMVC 配置詳解
springmvc.xml
(1)、配置組件掃描器
<context:component-scan base-package="com.springmvc.controller" />
(2)、配置處理器映射器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
(3)、配置處理器適配器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
(4)、配置註解驅動
<mvc:annotation-driven />
(5)、配置視圖解析器
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置邏輯視圖的前綴 -->
<property name="prefix" value="/jsp/" />
<!-- 配置邏輯視圖的後綴 -->
<property name="suffix" value=".jsp" />
</bean>
最終 jsp 物理地址:前綴 + 邏輯視圖名 + 後綴
註:部分知識源於網絡,侵權聯刪。
掃描關註微信公眾號,了解更多
SpringMVC 框架系列之組件概述與配置詳解