Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

Spring中,applicationContext.xml 配置文件在web.xml中的配置详解一、首先写一下代码结构。二、再看web.xml中的配置情况。<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:s…

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

一、首先写一下代码结构。

Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

 

二、再看web.xml中的配置情况。

复制代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
            <param-name>contextConfigLocation</param-name>
            <!-- <param-value>classpath*:config/applicationContext.xml</param-value> -->
            <param-value>/WEB-INF/classes/config/applicationContext.xml</param-value>
  </context-param>
  
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
     <servlet> 
        <servlet-name>springmvc</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
           <param-name>contextConfigLocation</param-name>
           <!-- <param-value>classpath*:config/Springmvc-servlet.xml</param-value> -->
           <param-value>/WEB-INF/classes/config/Springmvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup> 
    </servlet>  
    <servlet-mapping> 
        <servlet-name>springmvc</servlet-name> 
        <url-pattern>/</url-pattern>  
    </servlet-mapping>
</web-app>

复制代码

 

三、下面是对配置文件的说明。

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
ContextLoaderListener是Spring的监听器,它的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。

  <context-param>
            <param-name>contextConfigLocation</param-name>
            <!-- <param-value>classpath*:config/applicationContext.xml</param-value> -->
            <param-value>/WEB-INF/classes/config/applicationContext.xml</param-value>
  </context-param>

这段配置是用于指定applicationContext.xml配置文件的位置,可通过context-param加以指定:

这里需要搞清楚classpath是什么,以及classpath:和classpath*有何区别:

1. 首先 classpath是指 WEB-INF文件夹下的classes目录

2. classpath 和 classpath* 区别: 
classpath:只会到你的class路径中查找找文件; 
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找. 

 

如果applicationContext.xml配置文件存放在src目录下,就好比上面的代码结构中的存放位置,那么在web.xml中的配置就如下所示:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

如果applicationContext.xml配置文件存放在WEB-INF下面,那么在web.xml中的配置就如下所示:

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

需要注意的是,部署到应用服务器后,src目录下的配置文件会和class文件一样,自动copy到应用的 classes目录下,spring的 配置文件在启动时,加载的是web-info目录下的applicationContext.xml, 运行时使用的是web-info/classes目录下的applicationContext.xml。因此,不管applicationContext.xml配置文件存放在src目录下,还是存放在WEB-INF下面,都可以用下面这种方式来配置路径:

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

当有多个配置文件加载时,可采用下面代码来配置:

复制代码

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value> 
            classpath*:conf/spring/applicationContext_core*.xml, 
            classpath*:conf/spring/applicationContext_dict*.xml,
            classpath*:conf/spring/applicationContext_hibernate.xml,
            ......
        </param-value>
    </context-param>

复制代码

也可以用下面的这种方式:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:**/applicationContext-*.xml</param-value>
    </context-param>

“**/”表示的是任意目录; 

“**/applicationContext-*.xml”表示任意目录下的以”applicationContext-“开头的XML文件。 

Spring配置文件最好以”applicationContext-“开头,且最好把所有Spring配置文件都放在一个统一的目录下,也可以分模块创建。

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

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

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


相关推荐

  • linux安装jdk8[通俗易懂]

    目录1.下载jdk82.源码包解压3.配置jdk环境变量4.测试是否安装成功操作系统:Centos6.464位工具:Xftp5、Xshell51.下载jdk8方法一:官网手动下载下载Linux环境下的jdk1.8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21…

    2022年4月18日
    72
  • MySQL 添加索引,删除索引及其用法[通俗易懂]

    MySQL 添加索引,删除索引及其用法[通俗易懂]原文:https://www.cnblogs.com/zz-tt/p/6609828.html一.索引的作用一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响…

    2022年6月2日
    42
  • 用Excel处理笛卡尔积

    用Excel处理笛卡尔积    工作中遇到需要处理笛卡尔积的需求,用数据库只需把需要做笛卡尔积的各列进行外链接就可以了,想到Excel应该可以处理这样的需求,就百度学习了一下,但还是看不太懂,下面只是依葫芦画瓢做了一遍,记录一下。1、构建两列数据,如下图:2、构建D列辅助列,E列为用index函数处理A列后的数据,每个值的重复次数为B列的数值行数。3、用index()函数处理B列:…

    2022年7月27日
    121
  • Spring Cloud Admin健康检查 邮件、钉钉群通知

    Spring Cloud Admin健康检查 邮件、钉钉群通知

    2020年11月20日
    495
  • 矩阵范数的等价性(原创)[通俗易懂]

    矩阵范数的等价性(原创)[通俗易懂]矩阵范数的等价设F=R”role=”presentation”>F=RF=R\mathbbF=\mathbbR或C,”role=”presentation”>C,C,\mathbbC,对于任意两个Fn×n”role=”presentation”>Fn×nFn×n\mathbbF^{n\timesn}上的范数‖⋅&#x

    2025年11月21日
    3
  • h5怎么做分享到QQ 、朋友圈、微信 、微博等功能「建议收藏」

    h5怎么做分享到QQ 、朋友圈、微信 、微博等功能「建议收藏」微信已经成为我们日常聊天联系基本的必备工具,所以小菜我首先介绍一下如何调用微信的分享功能。其实除了可以在微信上分享到朋友圈和发送给好友,微信的分享接口还提供了分享到QQ和分享到腾讯微博等,就是在页面的

    2022年8月6日
    7

发表回复

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

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