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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网页设计与制作毕业论文(解析ip数据包课程设计)

    PAGE单位代码学号分类号毕业设计(论文)基于HTML5的P2P流媒体传输技术的设计与实现院(系)名称专业名称计算机科学与技术学生姓名指导教师2014年6月北京航空航天大学毕业设计(论文)第PAGE\*ROMANI页基于HTML5的P2P流媒体传输技术的设计与实现摘要P2P流媒体传输技术是一项基于对等网络的大规模流媒体实时直播技术。P2P流媒体传输技术使…

    2022年4月15日
    55
  • 查看Python安装路径_Python安装路径

    查看Python安装路径_Python安装路径查看Python安装路径方法在使用python的时候,有时候会需要找到python包的安装位置,怎么办?法一、对于Windows平台,打开cmd输入命令wherePython,回车(即按下Enter键)可输出Python的安装路径。参见下图:【如何清除命令行窗口内容输入cls回车】法二、在IDLE(Python自带的简洁的集成开发环境)中先输入impor…

    2022年4月19日
    66
  • 小学计算机画线反思,小学四年级数学上册《画平行线》教学反思[通俗易懂]

    小学计算机画线反思,小学四年级数学上册《画平行线》教学反思[通俗易懂]小学四年级数学上册《画平行线》教学反思过去,对于平行线的画法,我也感到很不理解,特别是用尺子移来移去,实在太麻烦,对于平行线的理解,学生只知道“在同一平面内不相交的两条直线是平行线”,而不相交的实质是“两条直线间的距离是固定的.”学生并没有直观感受。正是基于这样的认识画平行线的教学只能由教师传授给学生,他们也只能是机械的模仿,也就是简单的完成操作工的活动,没有任何思维的含量,不能算真正意义上的脑力…

    2022年9月17日
    0
  • android app 退出功能,Android 完美退出 App (Exit)

    android app 退出功能,Android 完美退出 App (Exit)最近两天为了解决Android上面退出程序问题折腾了半死,在google&baidu上面找了很久、很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行。三个方法分别是:killProcess,这种方式当你kill后Activity会返回到上一个ActivityAndroidLevel8(包含8)前使用一个API来操作,Level8以后又是另外一种,所以不能通用使用…

    2022年7月17日
    19
  • luke的使用[通俗易懂]

    luke的使用[通俗易懂]zz网络首次用Luke打开索引文件。Overview里面显示了索引具有的Field数目(以最大的Field为准吧?),还有就是文档的总数和Term即索引词的总数?有时一个关键词,对应于多个文档,所

    2022年8月6日
    3
  • pycharm是java开发的吗_pycharmjupyter

    pycharm是java开发的吗_pycharmjupyterPycharm—编译器使用:虚拟环境与系统环境:就是包的区别。虚拟环境需要重新下包,但包不互相影响系统环境就是有下载过的所有包—通过切换本地—虚拟编译器即可切换环境本地:即python所在目录的python.exe程序–python最主要就是lib(第三方库群),python.exe编译器,pythonshell自带的IDLE,再加上个集成开发环境(pycharm)就齐了虚拟:v…

    2022年8月27日
    3

发表回复

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

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