2013-01-24 33 views
2

在我的应用程序中,我将ApplicationContext xml文件放在src中,项目工作正常。
我们可以将ApplicationContext.xml放在我们的WebContent或Web-Inf文件夹中吗?ApplicationContext.xml和属性文件在春天的位置

另外我想知道我是否可以将我的属性文件放在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");

我唯一剩下的问题是没有答案的,我在那里将我的属性文件和它在哪里适合放在成功读取?

回答

9

几个方法你可以这样做:

在Spring MVC ,你在0​​提到dispatcher-servlet如下

<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文件,并且不希望将其重命名,除了上述的servlet条目添加以下条目在web.xml

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

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

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

我的ApplicationContext正在被正确读取,无论我把它放在哪里,但不是属性文件。所以这是我的主要疑问。 – Freakyuser

+0

你要把你的属性文件放在哪里?它应该在'classpath'中。 – Santosh

+0

我尝试把我的属性文件放在以下位置:'src' - 工作,'WebContent/conf' - 不工作,'WEB-INF/conf' - 不工作。 – Freakyuser

2

是的,你可以。

如果你把文件直接放在应该工作的WEB-INF里面。

如果你想把它们放在一个文件夹,名为在WEB-INF/conf你需要更改属性位置指conf/LicenseSettings.properties

+0

我把'ApplicationContext'在WEB-INF和得到这个'java.io.FileNotFoundException:类路径资源的ApplicationContext。xml'。然而,我试着把它放在'WEB-INF/classes'中,上面的异常没有被抛出,但是它没有读取属性文件,并抛出了这个java.io.FileNotFoundException:类路径资源WEB-INF/conf/LicenseSettings。 properties'。 – Freakyuser

+0

你想让我发布这段代码吗? – Freakyuser