概述

Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

Spring MVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。

整体过程

组件说明:

以下组件通常使用框架提供实现:

  • DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。
  • HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

HandlerMapping 配置了不同的映射方式,如注解方式,xml方式等.可将HandlerMapping看作路由控制器,通过HandlerMapping 可以得到当前对应的控制器.

  • HandlerAdapter:通过扩展处理器适配器,支持更多类型的处理器。

HandlerAdapter 会对Handler进行封装,就是第一张图中4的过程,包括数据转换,数据格式化,数据验证等.再以统一的适配器接口调用Handler.

  • ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。