私は私の春の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
引数。