Springの_@Scheduled
_ cron
構成のpropertyClassからゲッター(または変数)を呼び出す方法はありますか?以下はコンパイルされません:
@Scheduled(cron = propertyClass.getCronProperty())
または@Scheduled(cron = variable)
プロパティを直接取得することは避けたいと思います。
_@Scheduled(cron = "${cron.scheduling}")
_
簡単な答え-箱から出してそれは不可能です。
@Scheduled
アノテーションで「cron式」として渡された値は、ScheduledAnnotationBeanPostProcessor
インターフェイスのインスタンスを使用してStringValueResolver
クラスで処理されます。
StringValueResolver
には、すぐに使用できる3つの実装があります-Placeholder
(たとえば、$ {})、Embedded
値、およびStatic
文字列のいずれもできませんあなたが探しているものを達成します。
アノテーションでプロパティプレースホルダーを使用することを絶対に避けなければならない場合は、アノテーションを取り除き、すべてをプログラムで構築してください。 ScheduledTaskRegistrar
を使用してタスクを登録できます。これは、@Scheduled
アノテーションが実際に行うことです。
動作し、テストに合格する最も単純なソリューションを使用することをお勧めします。