/ /春特性リゾルバはどのように動作しますか? - ジャワ、春

春のプロパティリゾルバはどのように動作しますか? - java、spring

私は私の春のcontext.xmlファイルにプロパティプレースホルダーを持っています

<bean id="propertyConfigurer" class="com.techpleiad.poc.RMCPropertyUtil">
<property name="basenames" value="file:${config.file.dir}/prop_application" />
<property name="defaultEncoding" value="utf-8" />
<property name="cacheSeconds" value="30"></property>
</bean>

そしてこのプロパティ "config.file.dir「解決されていません。

"config.file.dir"は 環境変数 コードをデバッグしてベース名をチェックすると、ファイルパスはそのままになります。」{config.file.dir} / prop_application"

そのようなプロパティの解決にどのSpringコード/クラスが関与しているかを知る必要があります。 この問題をデバッグして解決する方法

回答:

回答№1は2

登録する必要があります PropertySourcesPlaceholderConfigurer あなたのプロパティソースへの参照を使って(あるいはこれは暗黙的に追加される環境プロパティなのでそうではない)

XMLを使ってそれを行うことができます

<context:property-placeholder location="classpath:spring.properties" />

Javaの設定では、単純に static @Bean を返す注釈付きメソッド PropertySourcesPlaceholderConfigurer.


回答№2の場合は0

試してみることができます スプリングスピル システムのプロパティを取得する

#{systemProperties["config.file.dir"]}

環境変数の使い方を読む

#{systemEnvironment["config.file.dir"]}

systemEnvironment propertyには、プログラムが実行されているマシン上のすべての環境変数が含まれています。その間、 systemProperties アプリケーションの起動時にJavaで設定したすべてのプロパティを含みます。 -D 引数。