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配置文件都放在一个统一的目录下,也可以分模块创建。

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

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

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

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

(0)


相关推荐

  • 诺基亚6300手机游戏下载_重玩JAVA手机游戏

    诺基亚6300手机游戏下载_重玩JAVA手机游戏随着安卓苹果手机的普及、手机的性能不断提高,手机游戏也从黑白俄罗斯方块进化为了各种华丽大作,有的甚至已经超越了多年前的电脑游戏。然而令人惋惜的是,大多数游戏只是画面进步了,玩法却在退步,这一点,从塞班、JAVA、MTK山寨机时代走过来的玩家肯定深有体会。想想看,在那个手机网络不发达,一个月10M流量用不完的年代,手机游戏厂商自然是以开发单机游戏为重心,即便是手机网游,比如口袋精灵,天劫OL,契约等…

  • 未来将是越界的时代

    未来将是越界的时代

  • 在win10自带的mail中如何设置学校邮箱

    在win10自带的mail中如何设置学校邮箱最近突然有项目缘故需要用到学校(所内)邮箱,然而该邮箱不常用,费了好长时间找回密码,好不容易找到密码就想为了信息接受的及时添加到win10的mail里吧,结果发现怎么添加都添加不上,最后得以解决,虽然是个很小的事,但是记录一下过程吧。首先要在添加账户选择高级设置,然后选择Internet电子邮件设置。之后进入里面配置,配置的信息在你想要绑定的邮箱首页的帮助里都可以找到,比如中国科学院的邮件…

  • JSP的四种作用域与九大内置对象

    JSP的四种作用域与九大内置对象JSP的四种作用域与九大内置对象

  • Eclipse-环境配置-jdk1.8

    Eclipse-环境配置-jdk1.8Eclipse-环境配置-jdk1.8进入javaSE官网,按如下下载jdk1.8jdk下载位置。按照安装要求进行下载,在此是按照以下进行下载。下载后点击安装,本机是安装在C:\Java\jdk1.8.0_144位置。然后配置环境参数:3、JDK环境变量配置a、新建JAVA_HOME环境变量,JAVA_HOME=C:\Java\jdk1.8.0_144b、修改…

  • 【kubernetes集群系列(二)】Worker(node)安装(使用kubeadm)

    【kubernetes集群系列(二)】Worker(node)安装(使用kubeadm)

发表回复

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

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