ContextLoaderListener类和contextConfigLocation参数[通俗易懂]

ContextLoaderListener类和contextConfigLocation参数[通俗易懂]一、web.xml中经常有如下配置 <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><context-param

大家好,又见面了,我是你们的朋友全栈君。

一、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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148881.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【matlab】如何画分段函数的图像[通俗易懂]

    【matlab】如何画分段函数的图像[通俗易懂]MATLAB如何画分段函数的图像通常要用MATLAB画分段函数图像的话,总要分段去画非常麻烦,还需要holdon,现在教你一种简单化分段函数的方法,让你一下子知道这个方法的魅力!!工具/原料MATLAB软件代码方法/步骤1确定你需要的分段函数是怎样一个表

  • Python中的输出「建议收藏」

    Python中的输出「建议收藏」1.Python的输出语句Python输出语句是print,但是python2.x与3.x又有点区别。python2.x输出print"xxx"能成功执行,而3.x不行,所以

  • java的serializable接口_javacloneable接口

    java的serializable接口_javacloneable接口Cloneable接口clone:它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用。Java中一个类要实现clone功能必须实现Cloneable接口,否则在调用clone()时会报CloneNotSupportedException异常。Java中所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clon

    2022年10月14日
  • python h5文件读取_python读取整个txt文件

    python h5文件读取_python读取整个txt文件这篇文章是一个工具类,用来辅助医学图像分割实战unet实现(二)4、数据存储这一小节的内容。文件:HDF5DatasetGenerator.py#-*-coding:utf-8-*-importh5pyimportosimportnumpyasnpclassHDF5DatasetGenerator:def__init__(self,…

  • 分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]

    分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]在java中有如下三种事务,简单的JDBC级的事务JTA-在EJB环境下,用户得到事务并进行控制CMP-完全由容器控制事务,用户通过Bean配置文件来定义事务行为二三种都支持分布式事务,但只支持Java环境下的分布式事务。下面讨论如何在Java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用JTA.这里假设使用oracle数据库,使用webLogic部署应用,所要做…

  • python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]

    python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]原标题:国家统计局居然也能用的上Python?人口数据Python脚本了解一下?通过采集国家统计局“国家数据”网站中提供的中国历年人口数据,并对数据进行可视化的探索,发现了一些有意思和令人深思的现象和趋势。有一些小伙伴后台留言希望公布一下采集“国家数据”网站人口数据的代码,在这里,就将总人口、人口出生率、人口年龄结构和人口平均寿命4项数据的代码公布出来,方便大家学习和使用。文章目录涉及到的模块在这…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号