2013-01-24 35 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