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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest指定用例_文件夹排列顺序自定义

    pytest指定用例_文件夹排列顺序自定义前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

    2022年7月29日
    5
  • java编程用啥软件_java编程要用什么软件[通俗易懂]

    java编程用啥软件_java编程要用什么软件[通俗易懂]第一题:packagecom.mtv.test;publicclassTestMain{publicstaticvoidprintFor(inti){intm,n,j;for(j=1;j<=i;j++){for(m=0;m<9-j;m++){System.out.print(“”);}for(n=1;n<=j;n++){System.out.print(n+…

    2022年7月9日
    20
  • RFC2616-HTTP1.1-Methods(方法规定部分—单词注释版)

    partof HypertextTransferProtocol–HTTP/1.1RFC2616Fielding,etal.9 MethodDefiniti

    2022年3月25日
    37
  • 1123581321递归算法_线性递归数列例题

    1123581321递归算法_线性递归数列例题[BZOJ3231][Sdoi2008]递归数列题目大意给定Ci,i∈[1,k]给定C_i,i\in[1,k]定义若i>k,Ai=Ai−1∗C1+Ai−2∗C2+⋯+Ai−k∗Ck若i>k,A_i=A_{i-1}*C_1+A_{i-2}*C_2+\cdots+A_{i-k}*C_k否则Ai=Bi否则A_i=B_i询问sum(A)n−sum(A)m−1询问sum(A)_n-sum(A

    2022年9月12日
    3
  • 求生之路2ping高_DDS信号源

    求生之路2ping高_DDS信号源问答时间:2020年12月17日嘉宾简介:高少星:萌宝集团创始人、稻荷资本创始合伙人、《好玩的书》作者。曾任顺为资本董事总经理、百度高级投资经理,是好大夫、丁香园、一点资讯、宝宝巴士、I…

    2025年7月17日
    6
  • ASP.NET MVC商城网站

    ASP.NET MVC商城网站本项目使用了大量的插件,所有的商品数据皆为动态加载,全部从数据库中读取呈现在界面上,具备商品评论,添加/移除购物车商品,邮箱发送验证码进行注册等功能。同时本项目配备商品后台管理系统,用来对商品信息和用户信息进行管理,同时还可查看商品的相关数据汇总。本项目仅用于学习参考,作为练习或者是实训项目也是刚刚好。界面展示(部分)代码太多了,就不进行部分展示了。…

    2022年7月22日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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