spring5
Spring5新特性
SpringMVC九大组件
DispatcherServlet初始化的九大组件:
-
处理器映射器组件(HandlerMapping):是用来查找handler的,在springMVC中会有很多请求,每个请求都需要一个handler处理,具体接收到一个请求后使用哪个handler进行处理,这个就是handlermapping需要做的事情。
-
HandlerExceptionResolver
-
处理器适配器组件(HandlerAdapter):从名字上看就是一个适配器。因为springMVC中的handler可以是任意的形式,只要能处理请求就OK,但是servlet需要的处理方法的结构却是固定的,都是以request和response为参数的方法。如何让servlet处理方法调用灵活的handler来进行处理,这就是handlerAdapter需要做的事情。
-
视图解析器组件(ViewResolver):ViewResolver用来将String类型的视图名和Locale解析为View类型的视图。View是用来渲染页面的,也就是将程序返回的参数填入模板里,生成html(也可能是其它类型)文件。这里就有两个关键问题:使用哪个模板?用什么技术(规则)填入参数?这其实是ViewResolver主要要做的工作,ViewResolver需要找到渲染所用的模板和所用的技术(也就是视图的类型)进行渲染,具体的渲染过程则交由不同的视图自己完成。
-
RequestToViewNameTranslator
-
LocalResolver
-
ThemeResolver
-
MultipartResolver
-
FlashMapManager
handler是用来干活的工具;handlermapping用于根据需要干的活找到相应的工具;handlerAdapter是使用工具干活的人。
SpringMVC消息处理流程
-
用户发送请求至前端控制器DispatcherServlet
-
DispatcherServlet收到请求调用HandlerMapping处理器映射器。
-
处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
-
DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
-
执行处理器(Controller,也叫后端控制器)。
-
Controller执行完成返回ModelAndView
-
HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
-
DispatcherServlet将ModelAndView传给ViewReslover视图解析器
-
ViewReslover解析后返回具体View
-
DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
-
DispatcherServlet响应用户。
SpringMVC详细运行流程图:
Comments
Leave a comment