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

Fre*_*ser 3 java spring spring-mvc

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

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

由于我已经放入ApplicationContext.xmlsrc,我将我的属性文件放在src中,并且工作正常.下面是它的代码

<bean id="licenseSettings"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:LicenseSettings.properties" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我尝试将属性文件放入,WebContent/conf但未成功读取属性.

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

更新:我将我的ApplicationContext.xml放入其中WEB-INF/classes并使用它成功读取ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");

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

San*_*osh 10

几种方法可以做到这一点:

在Spring MVC,你提到dispatcher-servletweb.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>
Run Code Online (Sandbox Code Playgroud)

现在,默认情况下会查找名为的文件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
Run Code Online (Sandbox Code Playgroud)

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

 <property name="location" value="classpath:../../conf/LicenseSettings.properties" /> 
Run Code Online (Sandbox Code Playgroud)