springMVC启动初始化过程

在web.xml里配置分发servlet和ContextLoaderListener,ContextLoaderListener是spring提供的类,它继承了ContextLoader类和实现了ServletContextListener接口。

ContextLoader类负责初始化容器,初始化方法是 initWebApplicationContext(ServletContext servletContext)

ServletContextListener负责监听web容器的创建和销毁,分别对应contextInitialized(ServletContextEvent sce) 和  contextDestroyed(ServletContextEvent sce)  方法,

在初始化方法中调用ContextLoader提供的initWebApplicationContext方法来初始化 Web 环境下的spring 容器WebApplicationContext,WebApplicationContext的类层次关系如下

从spring默认使用的mlWebApplication入手,与IOC容器的初始化过程类似,这个过程也有loadBeanDefinitions方法对BeanDefinition的引入,是通过XmlBeanDefinitionReader 来载入Bean定义信息的,最终完成对上下文的初始化过程

,还可以看到一些默认的配置项,不如默认的配置文件的路径和获取

如果想获取更详细的初始化过程代码可以详细到各个方法里看 :)

以上是笔者通过对spring 源码的分析总结出的一些拙见,如有错误 欢迎指出。

原文地址:https://www.cnblogs.com/jasonChai/p/10147715.html

时间: 2024-12-19 08:09:52

springMVC启动初始化过程的相关文章

Nginx 启动初始化过程

Nginx 启动过程 Nginx 的启动初始化由 main 函数完成,该函数是整个 Nginx 的入口,该函数完成 Nginx 启动初始化任务,也是所有功能模块的入口.Nginx 的初始化工作主要是一个类型为 ngx_cycle_t 类型的全局变量.main 函数定义在文件:src/?core/?nginx.c Nginx 启动过程如下. 调用 ngx_get_options() 解析命令参数: 显示版本号与帮助信息: 调用 ngx_time_init() 初始化并更新时间: 调用 ngx_lo

Spring之SpringMVC启动初始化过程分析

1.说明 SpringMVC作为Spring提供的MVC实现,可以实现与Spring的天然无缝联合,因为具有很广泛的用途.具体的关于SpringMVC的处理流程逻辑我在这里就不在赘述了.还是来通过源码来追述下SpringMVC的启动过程. 2.入口 DispatcherServlet作为SpringMVC的前端控制器,具有很核心的地位.来看下它的继承结构. 可以看到DispatcherServlet依次继承了GenericServlet.HttpServlet.HttpServletBean.F

SpringMVC DispatcherServlet初始化过程

先来上一张类的结构图: 图里只画了跟初始化相关的方法. 首先DispatcherServlet也是一个Servlet,初始化从init()方法开始. 下面就具体看看ini()是怎么实现的吧. 1.Servlet 是个接口: public void init(ServletConfig config) throws ServletException; 2.GenericServlet 中实现了初始化方法. public void init(ServletConfig config) throws

SpringMVC启动过程

1.  对于一个web应用,其部署在web容器中,web容器提供一个其一个全局的上下文环境,这个上下文环境就是ServletContext,它为后面的spring IoC容器提供宿主环境: 2.  web.xml中有配置ContextLoaderListener,也可以自定义一个实现ServletContextListener接口的Listener方法,web.xml中的配置实例如下: <listener> <listener-class>com.manager.init.Syst

启动期间的内存管理之初始化过程概述----Linux内存管理(九)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux内存管理 在内存管理的上下文中, 初始化(initialization)可以有多种含义. 在许多CPU上, 必须显式设置适用于Linux内核的内存模型. 例如在x86_32上需要切换到保护模式, 然后内核才能检测到可用内存和寄存器. 而我们今天要讲的boot阶段就是系统初始化阶段使用的内存分配器. 1 前景回顾 1.1

SpringBoot启动流程分析(四):IoC容器的初始化过程

SpringBoot系列文章简介 SpringBoot源码阅读辅助篇: Spring IoC容器与应用上下文的设计与实现 SpringBoot启动流程源码分析: SpringBoot启动流程分析(一):SpringApplication类初始化过程 SpringBoot启动流程分析(二):SpringApplication的run方法 SpringBoot启动流程分析(三):SpringApplication的run方法之prepareContext()方法 SpringBoot启动流程分析(四

Spring mvc 上下文初始化过程

在软件开发的中,如果某些特性的使用比较普遍,那么这些特性往往可以作为平台特性来实现,通过对这些平台特性进行有效的封装,使其向其他应用开放.正是如此,Spring由于其IOC.AOP.事务处理.持久化驱动等特点,使得其起到了一个应用平台的作用.Spring MVC是Spring的一个重要的模块,其web应用的实现,是由Spring的来支撑的,Spring MVC的是实现也是依托再Spring平台提供的基础特性的.本文主要是介绍Spring mvc容器初始化的过程,从中可以看出Spring MVC的

SpringMVC 启动流程

首先看一下Web应用部署初始化过程 (Web Application Deployement),官方文档说明: Web Application Deployment When a web application is deployed into a container, the following steps must be performed, in this order, before the web application begins processing client requests

SpringMvc启动源码解析

1. 前言 上篇文章介绍了Spring容器的初始化https://www.cnblogs.com/xiaobingblog/p/11738747.html,接下来介绍SpringMvc容器的初始化 2. 初始化化过程 上文讲过一个Web项目的启动在加载listener.fliter初始化后,再进行servlet初始化.那SpringMvc如何与Servlet联系起来?看web.xml配置文件,有一个专门配置SpringMvc的servlet,就是DispatcherServlet.看下Dispa