2015-10-07 5 views
6

私はSpringフレームワークv4.1.7を使用しています。プロパティファイルでcronパラメータを定義したいcronタスクをスケジュールする際に問題があります。spring @scheduled with cronはプロパティを解決しません。

私のJavaコード:

@Scheduled(cron = "${invoice.export.cron}") 
private void scheduledExport() { 
    // ... the code to execute ... 
} 

、私のプロパティでは、私は私のメインのコンフィギュレーションクラスに@EnableSchedulingを持ってスケジューリングを可能にするためにinvoice.export.cron: 0 0 7 * * MON-FRI?
を持っているファイル。

私はこの問題をデバッグしようとしましたが、cron式はプロパティプレースホルダーhereから解決する必要があることがわかりました。 resolveStringValueへの呼び出しに続いてthisに私をもたらすAbstractBeanFactory。そして、私が見る限り、ここに問題があります。 this.embeddedValueResolversリストは空です...したがって、私は@Scheduled(cron)に渡されたプロパティを解決しません。

私は何か間違っているのか、ここで何かを逃している人はいますか?

ありがとうございます! :)

答えて

7

PropertySourcesPlaceholderConfigurerを登録しましたか? $ {...}現在のスプリング環境 PropertySourcesのセットに対してビーン定義プロパティ値と@value 注釈内のプレースホルダを解決PlaceholderConfigurerSupportの

専門。

それは@Scheduledでも動作する場合、私はわからないんだけど、それはしてみてください

@Configuration 
@PropertySource("classpath:whatever.properties") 
public class PropertiesWithJavaConfig { 

    @Bean 
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 
} 
+0

価値がこの作品@Rubenありがとうございます。 :) – Dodge

関連する問題