ApplicationContext.xml和属性文件的位置在spring中

时间:2013-01-24 10:27:43

标签: java spring spring-mvc

在我的应用程序中,我已将ApplicationContext xml文件放在src中,项目工作正常 我们可以将ApplicationContext.xml放在我们的WebContent或Web-Inf文件夹中吗?

此外,我想知道是否可以将我的属性文件放在WebContent中。

由于我已将ApplicationContext.xml放入src,因此我将我的属性文件放在src中,并且运行正常。以下是它的代码

<bean id="licenseSettings"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:LicenseSettings.properties" />
</bean>

我尝试将属性文件放在WebContent/conf中,但是没有成功读取属性。

我的问题是,我们可以将ApplicationContext.xml和属性文件放在WebContent文件夹中的某个位置吗?

更新:我将我的ApplicationContext.xml放在WEB-INF/classes中,并使用ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");

成功读取

我唯一没有答案的问题是,我应该在哪里放置我的属性文件以及哪些内容适合放入?

2 个答案:

答案 0 :(得分:10)

有两种方式你可以这样做:

在Spring MVC中,您在dispatcher-servlet中提及web.xml,如下所示

 <servlet>
          <servlet-name>mvc-dispatcher</servlet-name>
            <servlet-class>
                      org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
</servlet>

现在默认情况下会查找名为mvc-dispatcher-servlet.xml的文件。也就是说,-servlet.xml附加了servlet名称。它将在类路径中查找此文件。

适用于您的情况,如果您已有xml文件但又不想重命名,请在web.xml 中添加以下条目另外到上面的servlet条目。

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/conf/ApplicationContext.xml</param-value>
 </context-param

您可以在此处选择WEB-INF中的任何位置。将属性文件放在classes文件夹中,以便可以在类路径中找到它。由于您使用的是Eclipse嵌入式Tomcat,因此请将以下内容作为属性占位符的bean配置。

 <property name="location" value="classpath:../../conf/LicenseSettings.properties" /> 

答案 1 :(得分:2)

是的,你可以。

如果您将文件直接放在WEB-INF中应该可以使用。

如果您想将它们放在名为WEB-INF/conf的文件夹中,则需要更改属性位置以引用conf/LicenseSettings.properties