重要domain说明
- DispatcherServlet 前端控制器,用于接收全部前段请求和分发请求,处理SpringMVC流程
- HandlerMapping 处理器映射器,从容器中获取所有的HandlerMapping并进行遍历,找到请求对应的Handler
- HandlerAdapter 处理器适配器,将参数传递给Handler进行处理
- Handler 处理器,我们平时常提到的Controller就是处理器,实际业务逻辑的地方
- ViewReslover 视图解析器,将ModelAndView转换为View
- HandlerExecutionChain 处理器处理链,包含一个处理器HandlerMethod和多个拦截器HandlerInterceptor
- HandlerIntercepter 处理器拦截器,可以在SpringMVC的某个流程中(请求处理前、请求处理后、渲染视图后等)来实现拦截器功能
- ModelAndView 模型数据,包含着SpringMVC里Model和View对象
- view 视图,视图解析器解析ModelAndView得出,前端控制器进行渲染
请求流程
- 用户发起请求(client客户端→DispatcherServlet前端控制器)
- 查找处理器(DispatcherServlet前端控制器与HandlerMapping处理器映射器交互)
- 找到处理器映射器查找处理器(DispatcherServlet前端控制器→HandlerMapping处理器映射器)
- 返回HandlerExecutionChain处理器处理链(包括HandlerIntercepter处理器拦截器和Handler处理器)(HandlerMapping处理器映射器→DispatcherServlet前端控制器)
- 调用处理器(DispatcherServlet前端控制器与HandlerAdapter处理器适配器交互)
- 通过处理器适配器调用具体的处理器(DispatcherServlet前端控制器→HandlerAdapter处理器适配器)
- 调用处理器Handler(HandlerAdapter处理器适配器→Handler处理器)
- 返回ModelAndView模型数据(Handler处理器→HandlerAdapter处理器适配器)
- 返回ModelAndView模型数据(HandlerAdapter处理器适配器→DispatcherServlet前端控制器)
- 通过处理器适配器调用具体的处理器(DispatcherServlet前端控制器→HandlerAdapter处理器适配器)
- 进行视图解析(DispatcherServlet前端控制器与ViewReslover视图解析器交互)
- 进行视图解析(DispatcherServlet前端控制器→ViewReslover视图解析器)
- 返回view视图(ViewReslover视图解析器→DispatcherServlet前端控制器)
- 渲染视图(DispatcherServlet前端控制器)
- 返回响应(DispatcherServlet前端控制器→client客户端)
SpringMVC的九大组件
- initMultipartResolver();//处理用户请求,把request封装为MultipartHttpServletRequest
- initLocalResolver();//处理国际化以及ViewReslover解析视图
- initThemeResolver();//处理解析主题
- initHandlerMapping();//处理查找Handler
- initHandlerAdapters;//处理参数,将Request和Response处理为Handler可接受的参数
- initHandlerExceptionResolver();//处理其他组件的异常
- initRequestToViewNameTranslator();//处理没有设置view和viewName的请求,从request中获取viewName
- initViewResolver();//用来处理视图解析
- initFlashMapManager();//用来处理redirect重定向时传递参数的FlashMap