一、springMVC
MVC模型,Spring家族的牛逼框架之一,出自于這位爺之手,Rod Johnson。
二、核心架構
圖一: springMVC核心架構圖
三、具體流程
- 用戶請求
——>
DispatcherServlet控制器作為統一訪問點,進行全局的流程控制。
- DispatcherServlet
——>
HandlerMappingHandlerMapping將會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器和多個HandlerInterceptor攔截器)
- DispatcherServlet
——>
HandlerAdapterHandlerAdapter將會把處理器包裝為適配器,從而支持多種類型的處理器。(適配器設計模式)
- HandlerAdapter
——>
處理器功能處理方法的調用HandlerAdapter將會根據適配的結果調用真正的處理器的功能處理方法,完成功能處理;并返回一個ModelAndView對象(包含模型數據、邏輯視圖名)
- ModelAndView邏輯視圖名稱
——>
ViewResolverViewResolver將把邏輯視圖名解析為具體的View,通過這種策略模式,很容易更換其他視圖技術。
- View
——>
渲染View會根據傳進來的Model模型數據進行渲染。
- 返回控制權給DispatcherServlet,由DispatcherServlet返回響應給用戶,到此一個流程結束。
四、開發步驟
- 在web.xml中配置DispatcherServlet,從而攔截請求
- 在servletName-servlet.xml中配置HandlerMapping,將請求映射到處理器
- 在servletName-servlet.xml中配置HandlerAdapter,支持多種類型的處理器
- 在servletName-servlet.xml中配置ViewResolver,將邏輯視圖名解析為具體視圖技術
- 在servletName-servlet.xml中配置處理器Controller,進行業務邏輯處理
五、后續版本
- Spring2.5 引入注解式處理器支持,通過@Controller 和 @RequestMapping 注解定義我們的處理器類
需要通過處理器映射 DefaultAnnotationHandlerMapping 和處理器適配器 AnnotationMethodHandlerAdapter 來開啟支
持@Controller 和 @RequestMapping 注解的處理器。
- Spring3.1提供新的@Contoller 和@RequestMapping 注解支持類
處理器映射 RequestMappingHandlerMapping 和 處理器適配器RequestMappingHandlerAdapter 組合來代替 Spring2.5 開始的處理器映射 DefaultAnnotationHandlerMapping 和處理器適配器AnnotationMethodHandlerAdapter