因为最近在研究Springmvc的源码,随便在微信读书上看了《看透Spring MVC 源代码分析与实践》这本书,通过这本数,让我初步了解了Tomcat的结构及工作流程,同时明白了互联网究竟是咋回事。
其实说白了,互联网的事情,无论什么框架,做什么用处,都离不开TCP/UDP协议,而Tomcat只是封装了这些协议,虽然没对tomcat的源码进行透彻的分析,但是初步估计,tomcat就是对TCP/UDP协议服务端进行了层层封装,最后提供功能实现接口,以供我们使用,而Spring MVC则更是对这些接口进行了进一步的封装,然后建立了mvc三层供我们使用。
小弟不才,但不要脸的说,其实我们每个人都可以开发出这样的tomcat服务器,也都可以根据Tomcat提供的这种接口开发出类似于Spring MVC的框架,当然其我们的设计思想与知识深度,是比不上大师的思想。
废话不多说,先贴上Spring MVC的底层源码工作流程如下,SpringMVC的起点是HttpServlet,作为一个已经入门了程序员,我们都知道这个接口的作用,因此本次分析将不会涉及这个,而是直接从SpringMVC的起点说起:
整个SpringMVC的主体工作流程就是这样的,因为我省略很多方法的调用,因此看上去很简单,但这张图说明了一个很通俗的道理,研究SpringMVC的源码,你不能一个个对象去看,因为那样你肯定会晕死,因为SpringMVC的整体工作流程是这样的,首先每个Servlet进行初始化,为后面的访问提供更多的匹配参数数据,在初始化完毕后,当你进行访问,访问又会走一遍整个Servlet,进行流程处理,这里的流程处理依赖于初始化过程中提供的参数。
按照程序加载的顺序,我们首先介绍的就是在Springmvc初始化过程中做了哪些工作,然后在逐步分析,Springmvc的访问流程。