ContextLoaderListener类和contextConfigLocation参数[通俗易懂]
通俗易懂 参数 contextConfigLocation
2023-06-13 09:12:28 时间
大家好,又见面了,我是你们的朋友全栈君。
一、web.xml 中经常有如下配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
contextConfigLocation 参数指定了spring启动要加载的配置文件,如果不指定,Spring 会加载WEB-INF目录下applicationContext.xml
二、ContextLoaderListener分析
ContextLoaderListener类图
可以看到
- ContextLoaderListener实现了ServletContextListener接口,继承了ContextLoader类。
- ServletContextListener用于监听ServletContext的创建和销毁,而ServletContext随着服务器启动而创建,随着服务器关闭而销毁。
- ContextLoaderListener实现了ServletContextListener的接口方法:contextInitialized和contextDestroyed 方法分别调用了 ContextLoader里面的initWebApplicationContext和closeWebApplicationContext方法
- initWebApplicationContext的过程可以描述为:先判断WebApplicationContext是否已存在,不存在的话则初始化一个XmlWebApplicationContext(WebApplicationContext的子类),并把该实例put到 currentContextPerThread 中。因此可以通过ContextLoader获取WebApplicationContext。
- 根据下面代码片段知道contextParam中的contextConfigLocation这个参数名是根据这里来写的
public static final String CONFIG_LOCATION_PARAM = "contextConfigLocation";
...
String configLocationParam = sc.getInitParameter(CONFIG_LOCATION_PARAM);
if (configLocationParam != null) {
wac.setConfigLocation(configLocationParam);
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148881.html原文链接:https://javaforall.cn
相关文章
- 通俗易懂的React事件系统工作原理
- IntelliJ IDEA 配置Tomcat运行web项目[通俗易懂]
- java进销存ERP管理系统源码[通俗易懂]
- ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
- SpringCloud之服务网关Gateway[通俗易懂]
- a8三星手机android,三星a8手机参数和测评介绍[通俗易懂]
- 基于LM331的电压-频率转换电路详细介绍[通俗易懂]
- springboot jpa 中使用逻辑删除[通俗易懂]
- Windows下 LaTeX安装教程 TeX Live 2021版[通俗易懂]
- Java NIO?看这一篇就够了![通俗易懂]
- MySql jdbc autoReconnect 的应用[通俗易懂]
- linux 海思hi3798m_海思Hi3798模块芯片,Hi3798处理器参数介绍[通俗易懂]
- Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]
- java interface接口和多继承[通俗易懂]
- 禁用Chrome Frame[通俗易懂]
- Linux CentOS 7安装Oracle11g超完美教程[通俗易懂]
- 使用google earth engine(GEE)提取2000年到2019年长江下游水体(河流、湖泊)数据[通俗易懂]
- python3 zipfile模块_Python ZipFile模块详解[通俗易懂]
- DeepLearning之LSTM模型输入参数:time_step, input_size, batch_size的理解[通俗易懂]
- linux zip 删除源文件,linux zip命令参数及用法详解–linux压缩zip文件命令[通俗易懂]
- BitBlt参数详解[通俗易懂]
- 2017年java培训机构排名[通俗易懂]
- IDEA设置JVM运行参数[通俗易懂]