在我的应用程序中,我已将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");
我唯一没有答案的问题是,我应该在哪里放置我的属性文件以及哪些内容适合放入?
答案 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