1

在 ASP.NET 中,我有.config配置我的应用程序的 XML 文件。能够登录到服务器并在需要更改配置时简单地编辑 XML 真是太好了。应用程序自我检测到这一点并自动重新启动。

如何使用 Spring MVC 获得同样的便利?

(目前我将 MVC 应用程序导出到.war部署在 Tomcat Web 应用程序管理器中的文件。例如,如果我需要更改设置,root-context.xml我需要再次导出、取消部署和部署应用程序。这是一个乏味且有风险的操作。)

4

2 回答 2

2

您可以将弹簧配置存储在您的战争之外(fe 在conf您的 tomcat 的文件夹中)。

下面的代码片段web.xml告诉 spring 在哪里可以找到配置文件:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>file:/foo/bar/root-context.xml</param-value>
</context-param>

或者您可以移动需要经常将其从您root-context.xml的属性文件更改为属性文件的东西,然后将其放置在战争之外。

在您的弹簧配置中定义一个属性占位符以访问属性文件:

<context:property-placeholder location="file:/foo/bar/root-context.properties />
于 2012-11-14T13:11:32.120 回答
0

例如,您可以创建带有扩展名的Java 属性配置文件,并将它们放在文件夹中。这样的文件可能包含.propertiesdevelopment.propertiesproduction.properties/WEB-INF/spring

myApp.Username = somename

然后从以下位置引用文件root-context.xml

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="/WEB-INF/spring/production.properties"/>
</bean>

root-context.xml文件中的配置值与类似的字符串一起使用

<property name="username" value="${myApp.Username}" /> 

部署.war文件时,您会注意到该文件夹name of app/WEB-INF/spring/​​将出现在您的网络服务器上的部署文件夹中(例如/var/lib/tomcat7/webapps)。在这里您也可以找到root-context.xml。虽然未经验证,但我假设如果您在文本编辑器中编辑这些文件并重新启动 Tomcat,您将实现您想要的。

于 2013-06-12T13:03:52.193 回答