我以前使用現在不推薦使用的類org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer
從服務器的文件系統加載屬性文件。我有以下豆definied:當使用PropertyPlaceholder時,Spring webapp中忽略了Tomcat上下文參數
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
<property name="locations" value="${config}"/>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="searchContextAttributes" value="true"/>
<property name="contextOverride" value="false"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="searchSystemEnvironment" value="false"/>
</bean>
的config
被啓動Tomcat時所傳遞參數,即
-Dconfig=/path/to/application.properties
對於web應用程序我也有一個上下文文件:
<Context docBase="/path/to/application.war">
<Parameter name="host" value="localhost" override="false"/>
<Parameter name="port" value="8080" override="false"/>
</Context>
如果由-Dconfig
參數指定的.properties
文件包含某些其他bean引用的屬性,那麼將從使用文件,否則使用上下文xml文件中的值。
這讓我有一組使用WAR部署的默認屬性,如果需要,我可以指定一個.properties
文件來覆蓋特定的值。
現在,我正在更新使用Spring 3.1中的新屬性抽象,但我似乎無法弄清楚對此的等效方法是什麼?
我有相同的背景文件和戰爭部署以同樣的方式,而我現在已經在應用程序執行以下操作:
<context:property-placeholder
location="${config}"
system-properties-mode="OVERRIDE"
ignore-resource-not-found="true"
ignore-unresolvable="true"/>
此找到並使用從屬性的屬性文件,但它不使用上下文XML文件中的值。
如何讓我的應用程序在使用此新屬性佔位符時使用上下文參數?
謝謝。
我不認爲你已經完全理解我原來的職位。我已經使用屬性文件解決了佔位符。該問題詢問使用上下文參數。 – C0deAttack
您是否遵循了從第一句的鏈接?剩下的答案只是其他使用.properties和application.properties的開發人員的附加組件。 – luksmir
問題是關於上下文參數 - 而不是屬性文件。 – C0deAttack