3

在我的应用程序中,我已将ApplicationContext xml文件放在 src 中,并且项目运行良好。
我们可以将它ApplicationContext.xml放在我们的 WebContent 或 Web-Inf 文件夹中吗?

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

因为我已经把我ApplicationContext.xml的 in 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");

我唯一没有回答的问题是,我应该把我的属性文件放在哪里,放在哪里合适?

4

2 回答 2

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 文件并且不想重命名它,除了上面的 servlet 条目之外,在 web.xml 中添加以下条目。

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

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

 <property name="location" value="classpath:../../conf/LicenseSettings.properties" /> 
于 2013-01-24T11:20:54.187 回答
2

是的你可以。

如果您将文件直接放在应该可以工作的 WEB-INF 中。

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

于 2013-01-24T10:30:47.340 回答