2012-11-14 36 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,您將獲得所需的內容。