部署一个web应用在web容器中,它会提供一个全局的上下文环境,这个上下文就是ServletContext,它为后面的IoC容器提供宿主环境,当web容器启动的时候,会执行web.xml中的ContextLoaderListener监听器初始化contextInitialized方法,调用父类的initWebApplicationContext方法,这个方法里面执行了三个任务:
1.创建WebApplicationContext容器,
2.加载context-param中spring配置文件,
3.初始化配置文件并且创建配置文件中的bean。
监听器初始化完毕后,开始初始化web.xml中配置的servlet ,用DispatcherServlet举例,它是一个前端控制器,用来转发、匹配、处理每个servlet 请求。DispatcherServlet上下文在初始化的时候会建立自己的上下文,先从ServletContext 中获取之前的WebApplicationContext作为自己上下文的父类上下文,有了这个父类上下文之后,再初始化自己持有的上下文,创建springmvc相关的bean,初始化处理器映射、视图解析等等,初始化完后,spring把Servlet的相关的属性作为属性key,存到servletcontext中,方便后面使用。这样每个Servlet 都持有自己的上下文,拥有自己独立的bean 空间,各个servlet 共享相同的bean,也就是根上下文定义的那些bean。web容器停止时候会执行ContextLoaderListener的contextDestroyed方法销毁context容器。
【Spring容器启动执行流程】
原创
©著作权归作者所有:来自51CTO博客作者我是廖志伟的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SpringBoot的启动流程是怎样的?SpringBoot源码(七)
SpringBoot的启动流程是怎样的?SpringBoot源码(七)
SpringBoot Java Spring SpringCloud 源码分析 -
Spring 容器的初始化过程 | 启动流程
目录高级容器的构造方法refresh() 刷新容器方法定义方法实现refresh()方法流程图spring容器的生命周期spring容器的扩展点prepare
spring容器 refresh 容器启动过程 容器初始化过程 初始化