Spring MVC的工做原理
1、Spring MVC的工做原理图

2、Spring MVC流程
-
用户发送请求至前端控制器DispatcherServlet
-
DispatcherServlet收到调用HandllerMapping处理映射器
-
处理映射器收到具体的处理器(能够根据XML配置、注释进行查找),生成处理器对象及处理器拦截器(若是有则生成)一并返给DispatchServlet
-
DispatcherServlet调用HandlerAdapter处理器适配器
-
HandllerAdapter通过适当调用具体的处理器(Controller,也叫后端控制器)
-
Controller执行完成返回ModelAndView
-
HandllerAdapter将controlloer执行结果ModelAndView返回给DispatcherServlet
-
DispatcherServlet将ModelAndView传给ViewReslover视图解析器
-
ViewReslover解析后返回具体View
-
DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)
-
DispatcherServlet响应用户
3、组件说明
一下组件一般使用框架提供实现:
-
DispatcherServlet:做为前端控制器,整个流程控制的中心,控制其余组件执行,统一调度,下降组件之间的耦合性,提升每一个组件的扩展性
-
HandllerMapping:经过扩展处理器映射器实现不一样的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
-
HandlAdapter:经过扩展处理器适配器,支持更多类型的处理器
-
ViewResolver:经过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、Excel等
4、各个组件的做用
-
前端控制器DispatcherServlet(不须要工程师开发,由框架提供)
做用:接收请求,响应结果,至关于转发器,中央处理器。能够下降与其余组件之间的耦合度
-
处理器映射器HandllerMapping(不须要工程师开发),由框架提供
做用:根据请求的URL查找Handller,HandllerMapping负责根据用户的请求找到Handller即处理器,Soring MVC提供了不一样的映射器实现不一样的映射方式,例如:配置文件方式,实现接口方式,注解方式等
做用:按照特定规则(HandllerAdapter要求的规则)去执行Handler,经过HandllerAdapter对处理器进行执行,这是适配器模式的应用,经过扩展适配器能够对更多烈性的处理器进行执行。
注意:编写Handler时按照HandlerAdapter的要求去开发,这样适配器才能够去正确执行Handller,Handler是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对据图的用户请求进行处理,因为Handller涉及到具体的用户业务请求,因此通常状况须要工程师根据业务需求开发Handler
-
视图解析器ViewResolver(不须要工程师开发),由框架提供
做用:进行视图解析,根据逻辑视图名解析成真正的视图(View),ViewResolver负责将处理结果生成View视图,ViewResovler首先根据逻辑实体名解析成物理实体名成物理视图名即具体的页面地址,在生成View视图对象,最后对View进行渲染将处理结果经过页面展现给用户。Spring MVC框架提供了不少的View视图类型,包括jstView、pdfView
View是一个接口,实现类支持不一样的View类型(JSP、pdf)
5、MVC模式
MVC:MVC是一种设计模式
MVC的原理图:

-
M-Model 模型(完成业务逻辑:有JavaBean构成,service+dao+entity)
-
V-View 视图(作界面的展现:jsp、html)
-
C-Controller (接收请求——>调用模型——>根据结果派发页面(servlet))
6、Spring MVC是什么
Spring MVC是一个MVC的开源框架,Spring MVC = Struts2+spring,Spring MVC就至关因而Struts2加上spring的整合,可是这里有一疑惑是Spring MVC和Spring是什么样的关系呢。Spring MVC是Spring的一个后续产品,其实就是Spring在原有基础上,又提供了Web应用的MVC模块,能够简单的把Spring MVC理解为是Spring的一个模块(相似于AOP、IOC这样的模块)。
7、Spring MVC的处理流程

-
用户发起请求到前端控制器(DispatcherServlet)
-
前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handle):经过XML配置或者注解进行查找
-
找到之后处理器映射器(HandlerMapping)像前端控制器返回执行链
-
前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去处理器(Handler)
-
处理器适配器去执行Handler
-
Handler执行完给处理适配器返回ModelAndView
-
处理器适配器向前端控制器返回ModelAndView
-
前端控制器请求视图解析器(ViewResolver)去执行视图解析
-
视图解析器像前端控制器返回View
-
前端控制器对视图进行渲染
-
前端控制器向用户响应结果
8、重要的组件
-
前端控制器(DispatcherServlet):接收请求,响应结果,至关于电脑的CPU。
-
处理器映射器(HandlerMapping):根据URL去查找处理器
-
处理器(Handler):(须要程序员去写代码处理逻辑的)
-
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就能够支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
-
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,能够解析成对应的页面
欢迎关注本站公众号,获取更多信息