org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer
サーバーのファイルシステムからプロパティファイルをロードするために、以前は廃止されたクラスを使用していました。次のBeanを定義しました:
<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>
は、Tomcat の起動時に渡される引数です。config
つまり、
-Dconfig=/path/to/application.properties
webapp には、コンテキスト ファイルもあります。
<Context docBase="/path/to/application.war">
<Parameter name="host" value="localhost" override="false"/>
<Parameter name="port" value="8080" override="false"/>
</Context>
.properties
引数で指定されたファイルに、-Dconfig
他の Bean が参照するプロパティが含まれている場合は、.properties
ファイルの値が使用されます。それ以外の場合は、コンテキスト xml ファイルの値が使用されます。
これにより、WAR とともにデプロイされた一連のデフォルト プロパティを持つことができ、必要に応じて、.properties
特定の値を上書きするファイルを指定することができました。
現在、Spring 3.1 で新しいプロパティの抽象化を使用するように更新していますが、これと同等のアプローチが何であるかを理解できないようです。
同じコンテキスト ファイルと war を同じ方法でデプロイしました。アプリケーションには次のものが含まれています。
<context:property-placeholder
location="${config}"
system-properties-mode="OVERRIDE"
ignore-resource-not-found="true"
ignore-unresolvable="true"/>
これは、プロパティ ファイルからプロパティを見つけて使用しますが、コンテキスト XML ファイルからの値は使用しません。
この新しいプロパティ プレースホルダーを使用するときに、アプリケーションでコンテキスト パラメーターを使用するにはどうすればよいですか?
ありがとう。