2012-11-14 84 views
1

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

我怎样才能获得与Spring MVC相同的便利?

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

回答

2

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

以下从web.xml片断告诉春天在哪里可以找到配置文件:

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

或者你可以移动的东西,你需要从你的root-context.xml到属性文件经常变化,并把它接外战争。

在Spring配置定义的属性占位符访问属性文件:

<context:property-placeholder location="file:/foo/bar/root-context.properties /> 
+0

很好,只是我寻找的解决方案的类型。 – Gruber

+0

@Gruber:很高兴听到 – Yevgeniy

+1

@Gruber:顺便说一句......一旦你在root-context.xml中改变了某些东西,你将不得不重新启动tomcat ......就我所知,春天没有自动重新加载东西。这样的事情可以很容易地实现单身豆,但这是一个不同的故事:) – Yevgeniy

0

您可以创建Java properties configuration files.properties扩展名,比如development.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/将出现在您的部署文件夹中bserver(例如/var/lib/tomcat7/webapps)。在这里你也可以找到root-context.xml。虽然未经过验证,但我认为如果您在文本编辑器中编辑这些文件并重新启动Tomcat,您将获得所需的内容。