Spring中指定applicationContext.xml等资源配置文件位置

来源:互联网 发布:lol网络关注 编辑:程序博客网 时间:2024/06/10 21:18

1.首先看看文件的位置

2.接下来看与资源文件位置相关的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>

3. 配置文件说明

(1) 

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

可以理解为Spring中的一个监听器,作用是启动web容器是自动装配ApplicationContext文件的配置信息。

(2)

 <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是指WEB-INF文件夹下的classes目录;

***classpath与classpath*区别:

前者只会到你的class路劲中查找文件;

后者包含class路径和jar文件中的路劲。

(3)如果applicationContext.xml放在src目录下,则配置如下

<context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </context-param>
如果配置在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>
(4)多个配置文件加载

<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文件。

阅读全文
0 0
原创粉丝点击