6

Spring Framework v4.1.7 を使用していますが、プロパティ ファイルで cron パラメーターを定義したい場合に cron タスクをスケジュールする際に問題があります。

私のJavaコード:

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

私のプロパティファイルでは、メインの構成クラスでinvoice.export.cron: 0 0 7 * * MON-FRI?
スケジューリングを有効にする必要があります。@EnableScheduling

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

私が何か間違ったことをしているのか、ここで何かを見逃しているのか、誰にも分かりますか?

前もって感謝します!:)

4

1 に答える 1

7

を登録しましたPropertySourcesPlaceholderConfigurerか?

Bean 定義プロパティ値内の ${...} プレースホルダーと、現在の Spring Environment およびその PropertySources のセットに対する @Value アノテーションを解決する PlaceholderConfigurerSupport の特殊化。

で動作するかどうかはわかりません@Scheduledが、試してみる価値はあります

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

   @Bean
   public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
      return new PropertySourcesPlaceholderConfigurer();
   }
}
于 2015-10-07T17:57:32.913 に答える