本文是专栏文章(
SpringMVC深度探险)系列的文章之一,博客地址为:
http://downpour.iteye.com/blog/1341459。
在上一篇文章中,咱们给出了构成SpringMVC应用程序的三要素以及三要素的设计过程。让咱们来概括一下整个设计过程当中的一些要点:
- SpringMVC将Http处理流程抽象为一个又一个处理单元
- SpringMVC定义了一系列组件(接口)与全部的处理单元对应起来
- SpringMVC由DispatcherServlet贯穿始终,并将全部的组件串联起来
在整个过程当中,组件和DispatcherServlet老是维持着一个相互支撑的关系:
- DispatcherServlet —— 串联起整个逻辑主线,是整个框架的心脏
- 组件 —— 逻辑处理单元的程序化表示,起到承上启下的做用,是SpringMVC行为模式的实际承载者
在本系列接下来的两篇文章中,咱们将分别讨论DispatcherServlet和组件的相关内容。本文讨论DispatcherServlet,而下一篇则重点分析组件。
有关DispatcherServlet,咱们想从构成DispatcherServlet的体系结构入手,再根据不一样的逻辑主线分别加以分析,但愿可以帮助读者整理出学习SpringMVC核心类的思路。
DispatcherServlet的体系结构
经过不一样的角度来观察DispatcherServlet会获得不一样的结论。咱们在这里选取了三个不一样的角度:运行特性、继承结构和数据结构。
【运行主线】
从DispatcherServlet所实现的接口来看,DispatcherServlet的核心本质:
是一个Servlet。这个结论彷佛很幼稚,不过这个幼稚的结论却蕴含了一个对整个框架都相当重要的内在原则:
Servlet能够根据其特性进行运行主线的划分。 根据Servlet规范的定义,Servlet中的两大核心方法init方法和service方法,它们的运行时间和触发条件都大相径庭: