2

@scheduled アノテーションの cron 式をプロパティ ファイルから動的にロードする必要があります。これに対する解決策はプロパティ プレース ホルダーを使用することですが、私の問題は、cron 式を含むプロパティ ファイルを動的に変更でき、その場所が別のプロパティ ファイルから派生することです。

application-context.xml は次のようになります。

    <util:properties id="dynamicProps" location="${configurable.property.file.path}"
    <context:property-placeholder properties-ref="dynamicProps"  />

configurable.property.file.path プロパティは、WEB-INF/classes の下にあるプロパティ ファイルに存在し、この値は次のようになります。

 configurable.property.file.path=${static.assets.path}/config/configuration.properties

上記の設定でサーバーのベビーベッドを起動すると、次のエラーが発生します。

  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#1': Cannot resolve reference to bean 'dynamicProps' while setting bean property 'properties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dynamicProps': Invocation of init method failed; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/${configurable.property.file}]

この理由は、この時点でプロパティ ファイルがまだ表示されていないためではないかと推測しています。これに対する解決策は何ですか?誰かがこれについて私を助けてくれますか?

4

0 に答える 0