深入理解spring mvc启动过程与原理

深入理解spring mvc启动过程与原理_第1张图片

spring mvc的启动,是跟随着tomcat启动的,所以要深入理解spring mvc的启动过程与原理,需要先了解下tomcat启动的一些关键过程。

1、tomcat web应用启动及初始化过程

参考官方文档,tomcat web应用启动过程是这样的:

深入理解spring mvc启动过程与原理_第2张图片

图1 tomcat web应用启动过程

大概意思就是,当一个Web应用部署到容器内时,在web应用开始执行用户请求前,会依次执行以下步骤:

  • 部署描述文件web.xml中元素标记的事件监听器会被创建和初始化;

  • 对于所有事件监听器,如果实现了ServletContextListener接口,将会执行其实现的contextInitialized()方法;

  • 部署描述文件中由元素标记的过滤器会被创建和初始化,并调用其init()方法;

  • 部署描述文件中由元素标记的servlet会根据的权值按顺序创建和初始化,并调用其init()方法;

通过上述文档的描述,可知tomcat web应用启动初始化流程是这样的:

深入理解spring mvc启动过程与原理_第3张图片

图2 tomcat web应用初始化过程

可以看出,在tomcat web应用的初始化流程是,先初始化listener,接着初始化filter,最后初始化servlet。

2、spring mvc应用的启动初始化

做过spring mvc项目开发的伙伴,都会配置一个web.xml配置文件,内容一般是这样的:

 
  
 
  

contextConfigLocation classpath*:spring/spring-main.xml org.springframework.web.context.ContextLoaderListener org.springframework.web.context.request.RequestContextListener encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* springServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath*:spring/spring-mvc*.xml 1 springServlet /

web.xml配置文件中也主要是配置了Listener,Filter,Servlet。

你可能感兴趣的:(java,编程,程序员,spring,mvc,servlet)