Spring MVC 介绍



大部分的Java应用都是基于Web的,作为轻量级的JavaEE框架,Spring也提供了自己的Web层的展现技术,一个优秀的



MVC框架—— Spring MVC。与其它的Web框架相比Spring的MVC框架在可扩展性和灵活性上有很大提高。但是相对要



复杂很多。Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器、视图解析器、视图组成。以DI(笔者更



喜欢DI这个概念,觉得IoC表达没有DI清晰)为核心的Spring MVC也有的技术人员认为设计太复杂,有过度设计的嫌疑。

不过它确实提供了一个接近于完美的Web框架,或许这也正是Rod Johnson先生的初衷吧。下图是Spring MVC的原理框图:



整个处理过程从一个HTTP请求开始:



1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。



2)调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。



3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。



DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:



1)截获符合特定格式的URL请求。



2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的

WebApplicationContext建立关联。



3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。