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

比眉伴天荒 2024-03-26 14:21 154阅读 0赞

c7d5f12fccf92a298c7abeca474fc906.jpeg

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

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

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

7335e66c41ddd25f20c241dc2e33e168.png

图1 tomcat web应用启动过程

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

  • 部署描述文件web.xml中元素标记的事件监听器会被创建和初始化;
  • 对于所有事件监听器,如果实现了ServletContextListener接口,将会执行其实现的contextInitialized()方法;
  • 部署描述文件中由元素标记的过滤器会被创建和初始化,并调用其init()方法;
  • 部署描述文件中由元素标记的servlet会根据的权值按顺序创建和初始化,并调用其init()方法;

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

d6ec56b9d86b7313b6cf8b23ae25b2e0.png

图2 tomcat web应用初始化过程

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

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

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

<?xml version=”1.0” encoding=”UTF-8”?> 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。

发表评论

表情:
评论列表 (有 0 条评论,154人围观)

还没有评论,来说两句吧...

相关阅读

    相关 深入理解 Spring 事务原理

    一、事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以