SpringMVC组成与运行流程
SpringMVC组成与运行流程
springMVC三大组件
处理器映射器
- 用户请求路径到Controller方法的映射
处理器适配器
- 根据handler(controller类)的开发方式(注解开发/其他开发) 方式的不同去寻找不同的处理器适配器
视图解析器
- 根据handler返回的view地址文件类型(jsp/pdf….)去寻找相应的视图解析器来进行解析

SpringMVC框架的运行流程
- 从接收请求到返回响应,Spring MVC框架的众多组件通力配合、各司其职地完成整个流程工作。在整个框架中,Spring MVC通过一个前端控制器接收所有的请求,并将具体工作委托给其他组件进行处理,所以说DispatcherServlet处于核心地位,它负责协调组织不同组件完成请求处理并返回响应结果。
- 根据Spring MVC的请求处理过程,我们具体分析一下每个组件所负责的工作内容:
1. 客户端发出HTTP请求,Web应用服务器接收此请求。如匹配DispatcherServlet的请求映射路径,则Web容器将该请求转交给DispatcherServlet处理;
2. DispatcherServlet拿到请求之后,根据请求的信息(URL、请求参数、HTTP方法等)及HandlerMapping的配置找到处理请求的处理器(Handler);
3. 当DispatcherServlet找到相应的Handler之后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter可以理解为真正使用Handler来干活的人。
4. 在请求信息真正到达调用Handler的处理方法之前的这段时间,Spring MVC还完成了很多工作,它会将请求信息以一定的方式转换并绑定到请求方法的入参,对于入参的对象会进行数据转换、数据格式化以及数据校验等。这些都做完以后,最后才真正调用Handler的处理方法进行相应的业务逻辑处理。
5. 处理器完成业务处理之后,将一个ModelAndView对象返回给DispatcherServlet,其中包含了逻辑视图名和模型数据信息。
6. DispatcherServlet通过ViewResolver将逻辑视图名解析为真正的视图对象View,可以是JSP、HTML、XML、PDF、JSON等等,Spring MVC均可灵活配置,在以后会介绍。
7. 得到真正的视图对象之后,DispatcherServlet会根据ModelAndView对象中的模型数据对View进行视图渲染。
8. 最终客户端获得响应消息。
Spring MVC框架的特点
- 通过上文的演示示例以及对Spring MVC的处理流程、体系结构的介绍,我们可以总结一下它的特点:
1. 角色划分清晰。Model、View、Controller各司其职,耦合度较低。
2. 灵活的配置功能。Spring的核心是IoC和AOP,统一可以实现在MVC上,把各种类当作Bean组件配置在Spring容器中。
3. 提供了大量的接口和实现类,方便各种场景的开发。
4. 真正做到与View层的实现无关。
5. 结合Spring的依赖注入,更好地应用了面向接口编程的思想。
6. 可以与Spring天衣无缝的整合
7. 等等
参考:https://www.cnblogs.com/jxxblogs/p/12148737.html
https://blog.csdn.net/wzy18210825916/article/details/82799764#一、Spring MVC框架的请求处理流程

浙公网安备 33010602011771号