2018-07-29:SpringMVC运行原理

1.概述:

什么是SpringMVC?:SpringMVC是Spring家族提供的一款子产品,主要专注于解决WEB编程中的控制器层的问题. 

2.SpringMVC的执行原理.

1.Spring mvc 将接收到的所有请求都交给了DispatcherServlet,它会委托应用系统的其他模块负责对请求的真真的处理工作.
2.DispatcherServlet查询一个或者多个HandlerMapping,找到处理请求的Controller.
3.DsipatcherServlet请求提交到目标Controller.
4.Controller进行业务逻辑的处理后,会返回一个ModelAndVuew.
5.Dispathcher查询一个或者多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象.
6.视图对象负责渲染然后返回给客服端.

3.SpringMVC的执行流程


2018-07-29:SpringMVC运行原理_第1张图片

1.用户发起请求到控制器成(Controller)
2.前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)andler对象(Model)
3.HandlerMapping返回执行链,包含了2部分内容:1Handler对象,2拦截器数组
4.前端处理器通过处理器适配器包装后执行Handler对象.
5.处理业务逻辑.
6.Handeler处理完业务逻辑,返回ModeAndVier对象,其中view是视图名称,不是真正的视图对象.
7.将ModelAndView返回给前端控制器。
8.视图解析器(ViewResolver)返回真正的视图对象(View)。
9.(此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
10.返回渲染后的视图(html/json/xml)返回。
11.给用户产生响应。

4.优点

1.使用Spring的IOC容器,将对象之间的依赖关系交给了Spring,降低组件之间的耦合性.

2.可以提供众多的服务,事务管理,日志管理,WS等...

3.对主流的框架提供了很好的集成支持,如Struts2,Hibernate,等...

4Spring DI机制降低了业务对象替换的复杂性

5.Spring属于低侵入,对代码入侵性小,对代码的污染极低.

6.Spring的高度开放性,并不强制依赖于整个Spring,开发者可以自由选择Spring的部分功能或者全部!

你可能感兴趣的:(2018-07-29:SpringMVC运行原理)