在 ASP.NET 中,我有.config
配置我的应用程序的 XML 文件。能够登录到服务器并在需要更改配置时简单地编辑 XML 真是太好了。应用程序自我检测到这一点并自动重新启动。
如何使用 Spring MVC 获得同样的便利?
(目前我将 MVC 应用程序导出到.war
部署在 Tomcat Web 应用程序管理器中的文件。例如,如果我需要更改设置,root-context.xml
我需要再次导出、取消部署和部署应用程序。这是一个乏味且有风险的操作。)
在 ASP.NET 中,我有.config
配置我的应用程序的 XML 文件。能够登录到服务器并在需要更改配置时简单地编辑 XML 真是太好了。应用程序自我检测到这一点并自动重新启动。
如何使用 Spring MVC 获得同样的便利?
(目前我将 MVC 应用程序导出到.war
部署在 Tomcat Web 应用程序管理器中的文件。例如,如果我需要更改设置,root-context.xml
我需要再次导出、取消部署和部署应用程序。这是一个乏味且有风险的操作。)
您可以将弹簧配置存储在您的战争之外(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 />
例如,您可以创建带有扩展名的Java 属性配置文件,并将它们放在文件夹中。这样的文件可能包含.properties
development.properties
production.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,您将实现您想要的。