2 つのプロパティ ファイルがあります。
environment.properties:
- project.host.db3.database.name=oracle
application.properties:
- database.name=${project.host.db3.database.name}
最初のものは環境変数を表し、2 つ目は Spring プロジェクトで使用されるプロパティを表します。この構成では、environment.properties を設定しようとしますが、もちろん機能しません。
<bean id="systemPropertiesLoader"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" value="#{@systemProperties}" />
<property name="targetMethod" value="putAll" />
<property name="arguments">
<util:properties location="classpath:environment.properties" />
</property>
</bean>
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
depends-on="systemPropertiesLoader">
<property name="locations">
<list>
<value>classpath:application.properties</value>
</list>
</property>
<!-- bean using database.name -->
それは可能ですか?そうでない場合、人々はどのようにしてプロジェクトに不可知論的プロパティ (database.name など) を持ち、1 つのファイル (war、jar など) だけを展開するのでしょうか?