web.xml加载spring配置文件的方式主要依据该配置文件的名称和存放的位置不同来区别,目前主要有两种方式。

1. 如果spring配置文件的名称为applicationContext.xml,并且存放在WEB-INF/目录下,那么只需要在web.xml中加入以下代码即可

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

注意:该监听器会自动扫描WEB-INF/ 下的applicationContext.xrnl 文件,这种方式多数用在只有一个配置文件的情况下。

  还可以使用Spring的ContextLoaderServlet的这个特殊Servlet,实现代码如下

<servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-name>
  <load-on-startup>1(优先级)</load-on-startup>
</servlet>

2.如果spring配置文件的名称是自定义的其他名称(我使用的就是自定义名称),比如为applicationContext-test.xml,也还是存放在WEB-INF/目录下,那么还需要配置contextConfigLocation这个参数,该参数是一个字符串,监听器或者Servlet会自定将该字符串按照特定的字符(比如空格、逗号、分号)解析成多个文件。需要添加如下代码:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/application-testA.xml,/WEB-INF/application-testB.xml,/WEB-INF/application-testB.xml</param-value>
</context-param>

可以使用通配符对上面进行简写如下

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/application*.xml</param-value>
</context-param>

注意:如果既没有applicationContext.xml 文件,也没有使用contextConfigLocation参数确定配置文件,或者contextConfigLocation确定的配置文件不存在。都将导致Spring 无法加载配置文件或无法正常创建ApplicationContext 实例.

加入了Spring监听器,从而才能正确加载Spring配置文件:

文章转载至:https://www.cnblogs.com/lzxin/p/8992737.html

Spring:在web.xml正确加载spring配置文件的方式的更多相关文章

  1. 在web.xml正确加载spring配置文件的方式

    ssm框架整合时一直报出没有创建实例bean的错误,一直以为是代码原因,反复测试了很久,才找到原因是spring配置文件没有正确导入,下图是我的错误示例 web.xml加载spring配置文件的方式主 ...

  2. web.xml的加载过程配置详解

      一:web.xml加载过程 简单说一下,web.xml的加载过程.当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等).首先会去读取web.xml配置文件里的配置,当这一步骤没有 ...

  3. web.xml文件加载顺序

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  4. web.xml 的加载过程

    初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...

  5. web.xml 配置 加载顺序

    web.xml 的加载顺序是:context-param -> listener -> filter -> servlet . 过滤器执行顺序是根据filter-mapping ,不 ...

  6. web.xml的加载过程是context-param >> listener >> fileter >> servlet

    web.xml的加载过程是context-param >> listener  >> fileter  >> servlet

  7. spring的配置文件在web.xml中加载的方式

    web.xml加载spring配置文件的方式主要依据该配置文件的名称和存放的位置不同来区别,目前主要有两种方式. 1.如果spring配置文件的名称为applicationContext.xml,并且 ...

  8. Web项目中加载Spring配置的常用方法

    1.web.xml中添加配置 <web-app>      <context-param>         <param-name>contextConfigLoc ...

  9. web.xml组件加载顺序

    在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要. 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前. 经过查阅和Debug发现, web.x ...

随机推荐

  1. nginx反向代理网站镜像

    某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题.比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作. ...

  2. 项目实践之工作流引擎基本文档!Activiti工作流框架中流程引擎API和服务详解

    流程引擎的API和服务 流程引擎API(ProcessEngine API)是与Activiti打交道的最常用方式 Activiti从ProcessEngine开始.在ProcessEngine中,可 ...

  3. [leetcode] 45. 跳跃游戏 II(Java)(动态规划)

    45. 跳跃游戏 II 动态规划 此题可以倒着想. 看示例: [2,3,1,1,4] 我们从后往前推,对于第4个数1,跳一次 对于第3个数1,显然只能跳到第4个数上,那么从第3个数开始跳到最后需要两次 ...

  4. RMAN CROSSCHECK命令 说明

    CROSSCHECK命令:     用于核对磁盘和磁带上的备份文件,以确保RMAN资料库与备份文件保持同步.注意:该命令只会检查RMAN资料库所记载的备份文件.当执行crosscheck命令时,如果资 ...

  5. double类型数据有的时候null的判断

    double不是Double,无法通过 == null来判断 如何进行double的null判断呢 double avg = avg.getValue() // 此时不会报错 // 通过如下进行判断 ...

  6. toFixed奇葩问题

    1.浮点数运算后的精度问题 在计算商品价格加减乘除时,偶尔会出现精度问题 // 加法 ===================== 0.1 + 0.2 = 0.30000000000000004 0.7 ...

  7. 人体姿态和形状估计的视频推理:CVPR2020论文解析

    人体姿态和形状估计的视频推理:CVPR2020论文解析 VIBE: Video Inference for Human Body Pose and Shape Estimation 论文链接:http ...

  8. CVPR2020:4D点云语义分割网络(SpSequenceNet)

    CVPR2020:4D点云语义分割网络(SpSequenceNet) SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds 论 ...

  9. .NET平台系列21:云原生时代 .NET5 雄霸天下

    系列目录     [已更新最新开发文章,点击查看详细] 随着互联网持续高歌猛进,相关技术名词也是层出不穷.微服务.容器化.DevOps.ServerLess.FaaS,这两年最火的当属云原生Cloud ...

  10. Java静态方法和实例方法的区别以及this的用法

    Java静态方法和实例方法 相同之处:都能接收传过来的参数,都能返回参数. 不同之处:有static就是静态方法,静态方法在另外一个类里面,不用new这个静态方法所在的类,也能直接访问这个方法,比较方 ...