クラス ScheduledAnnotationBeanPostProcessor

java.lang.ObjectSE
org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor
実装されたすべてのインターフェース:
EventListenerSEAwareBeanFactoryAwareBeanNameAwareBeanPostProcessorDestructionAwareBeanPostProcessorDisposableBeanSmartInitializingSingletonMergedBeanDefinitionPostProcessorApplicationContextAwareApplicationListener<ApplicationContextEvent>EmbeddedValueResolverAwareOrderedScheduledTaskHolder

@Scheduled でアノテーションが付けられたメソッドを、アノテーションを介して提供される "fixedRate"、"fixedDelay"、"cron" 式に従って TaskScheduler によって呼び出されるように登録する Bean ポストプロセッサー。

このポストプロセッサーは、Spring の <task:annotation-driven> XML 要素および @EnableScheduling アノテーションによって自動的に登録されます。

コンテナー内の SchedulingConfigurer インスタンスを自動検出し、使用するスケジューラーのカスタマイズ、タスク登録(Trigger タスクの登録など)のきめ細かい制御を可能にします。完全な使用箇所の詳細については、@EnableScheduling javadoc を参照してください。

導入:
3.0
作成者:
Mark Fisher, Juergen Hoeller, Chris Beams, Elizabeth Chatman, Victor Brown, Sam Brannen, Simon Basl é
関連事項:
  • フィールドの詳細

    • DEFAULT_TASK_SCHEDULER_BEAN_NAME

      public static final StringSE DEFAULT_TASK_SCHEDULER_BEAN_NAME
      ピックアップする TaskScheduler Bean のデフォルト名: "taskScheduler"。

      初期ルックアップは型ごとに行われることに注意してください。これは、コンテキストで複数のスケジューラ Bean が見つかった場合のフォールバックです。

      導入:
      4.2
      関連事項:
    • logger

      protected final Log logger
  • コンストラクターの詳細

    • ScheduledAnnotationBeanPostProcessor

      public ScheduledAnnotationBeanPostProcessor()
      デフォルトの ScheduledAnnotationBeanPostProcessor を作成します。
    • ScheduledAnnotationBeanPostProcessor

      public ScheduledAnnotationBeanPostProcessor(ScheduledTaskRegistrar registrar)
      指定された ScheduledTaskRegistrar に委譲する ScheduledAnnotationBeanPostProcessor を作成します。
      パラメーター:
      registrar - @Scheduled タスクを登録する ScheduledTaskRegistrar
      導入:
      5.1
  • メソッドの詳細

    • getOrder

      public int getOrder()
      インターフェースからコピーされた説明: Ordered
      このオブジェクトの順序値を取得します。

      値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。

      同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。

      次で指定:
      インターフェース OrderedgetOrder 
      戻り値:
      オーダー額
      関連事項:
    • setScheduler

      public void setScheduler(ObjectSE scheduler)
      スケジュールされたメソッドを呼び出す TaskScheduler、または TaskScheduler としてラップされる ScheduledExecutorServiceSE を設定します。

      指定しない場合、デフォルトのスケジューラー解決が適用されます。コンテキスト内の一意の TaskScheduler Bean を検索するか、そうでない場合は "taskScheduler" という名前の TaskScheduler Bean を検索します。同じ検索が ScheduledExecutorServiceSE Bean に対しても実行されます。どちらも解決できない場合、ローカルのシングルスレッドのデフォルトスケジューラがレジストラ内に作成されます。

      関連事項:
    • setEmbeddedValueResolver

      public void setEmbeddedValueResolver(StringValueResolver resolver)
      インターフェースからコピーされた説明: EmbeddedValueResolverAware
      StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。
      次で指定:
      インターフェース EmbeddedValueResolverAwaresetEmbeddedValueResolver 
    • setBeanName

      public void setBeanName(StringSE beanName)
      インターフェースからコピーされた説明: BeanNameAware
      この Bean を作成した Bean ファクトリで Bean の名前を設定します。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanNameAwaresetBeanName 
      パラメーター:
      beanName - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      BeanFactory を使用可能にすることはオプションです。設定しない場合、SchedulingConfigurer Bean は自動検出されず、scheduler を明示的に構成する必要があります。
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext)
      ApplicationContext の設定はオプションです。設定すると、登録されたタスクは ContextRefreshedEvent フェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated() 時に発生します。
      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • afterSingletonsInstantiated

      public void afterSingletonsInstantiated()
      インターフェースからコピーされた説明: SmartInitializingSingleton
      シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。このメソッド内の ListableBeanFactory.getBeansOfType(java.lang.Class<T>) 呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。

      注意 : このコールバックは、BeanFactory ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。

      次で指定:
      インターフェース SmartInitializingSingletonafterSingletonsInstantiated 
    • postProcessMergedBeanDefinition

      public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName)
      インターフェースからコピーされた説明: MergedBeanDefinitionPostProcessor
      指定された Bean の指定されたマージ済み Bean 定義を後処理します。
      次で指定:
      インターフェース MergedBeanDefinitionPostProcessorpostProcessMergedBeanDefinition 
      パラメーター:
      beanDefinition - Bean のマージされた Bean 定義
      beanType - 管理対象 Bean インスタンスの実際の型
      beanName - Bean の名前
      関連事項:
    • postProcessBeforeInitialization

      public ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName)
      インターフェースからコピーされた説明: BeanPostProcessor
      Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)のに、この BeanPostProcessor を指定された新しい Bean インスタンス適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。

      デフォルトの実装は、指定された bean をそのまま返します。

      次で指定:
      インターフェース BeanPostProcessorpostProcessBeforeInitialization 
      パラメーター:
      bean - 新しい Bean インスタンス
      beanName - Bean の名前
      戻り値:
      使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。null の場合、後続の BeanPostProcessors は呼び出されません
      関連事項:
    • postProcessAfterInitialization

      public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName)
      インターフェースからコピーされた説明: BeanPostProcessor
      Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)のに、この BeanPostProcessor を新しい Bean インスタンス適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。

      FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。

      このコールバックは、他のすべての BeanPostProcessor コールバックとは異なり、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) メソッドによってトリガーされた短絡後にも呼び出されます。

      デフォルトの実装は、指定された bean をそのまま返します。

      次で指定:
      インターフェース BeanPostProcessorpostProcessAfterInitialization 
      パラメーター:
      bean - 新しい Bean インスタンス
      beanName - Bean の名前
      戻り値:
      使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。null の場合、後続の BeanPostProcessors は呼び出されません
      関連事項:
    • processScheduled

      protected void processScheduled(Scheduled scheduled, MethodSE method, ObjectSE bean)
      指定された Bean 上で指定された @Scheduled メソッド宣言を処理し、リアクティブメソッドと同期メソッドを区別しようとします。
      パラメーター:
      scheduled - @Scheduled アノテーション
      method - アノテーションが宣言されているメソッド
      bean - ターゲット Bean インスタンス
      関連事項:
      • processScheduledSync(Scheduled, Method, Object)
      • processScheduledAsync(Scheduled, Method, Object)
    • createRunnable

      protected RunnableSE createRunnable(ObjectSE target, MethodSE method, @Nullable StringSE qualifier)
      指定された Bean インスタンスの RunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。

      デフォルト実装は ScheduledMethodRunnable を作成します。

      パラメーター:
      target - ターゲット Bean インスタンス
      method - 呼び出す予定のメソッド
      導入:
      6.1
    • createRunnable

      @DeprecatedSE(since="6.1") @Nullable protected RunnableSE createRunnable(ObjectSE target, MethodSE method)
      使用すべきではありません。
      指定された Bean インスタンスの RunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。
      パラメーター:
      target - ターゲット Bean インスタンス
      method - 呼び出す予定のメソッド
      導入:
      5.1
    • getScheduledTasks

      public SetSE<ScheduledTask> getScheduledTasks()
      Scheduled メソッドおよびプログラムによる SchedulingConfigurer インタラクションから、現在スケジュールされているすべてのタスクを返します。

      これには、リアクティブメソッドの今後スケジュールされたサブスクリプションが含まれますが、そのようなメソッドの現在アクティブなサブスクリプションは含まれないことに注意してください。

      次で指定:
      インターフェース ScheduledTaskHoldergetScheduledTasks 
      導入:
      5.0.2
    • postProcessBeforeDestruction

      public void postProcessBeforeDestruction(ObjectSE bean, StringSE beanName)
      インターフェースからコピーされた説明: DestructionAwareBeanPostProcessor
      破棄する前に、この BeanPostProcessor を指定の Bean インスタンスに適用します。カスタム破棄コールバックを呼び出します。

      DisposableBean の destroy およびカスタム destroy メソッドのように、このコールバックは、コンテナーがライフサイクルを完全に管理する Bean にのみ適用されます。これは通常、シングルトンとスコープ Bean の場合です。

      次で指定:
      インターフェース DestructionAwareBeanPostProcessorpostProcessBeforeDestruction 
      パラメーター:
      bean - 破棄される Bean インスタンス
      beanName - Bean の名前
      関連事項:
    • requiresDestruction

      public boolean requiresDestruction(ObjectSE bean)
      インターフェースからコピーされた説明: DestructionAwareBeanPostProcessor
      指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。

      デフォルトの実装は true を返します。DestructionAwareBeanPostProcessor の 5 以前の実装がこのメソッドの具体的な実装を提供しない場合、Spring は true も暗黙のうちに想定します。

      次で指定:
      インターフェース DestructionAwareBeanPostProcessorrequiresDestruction 
      パラメーター:
      bean - チェックする Bean インスタンス
      戻り値:
      DestructionAwareBeanPostProcessor.postProcessBeforeDestruction(java.lang.Object, java.lang.String) が最終的にこの Bean インスタンスのために呼び出されることになっている場合は true、または不要な場合は false 
    • destroy

      public void destroy()
      インターフェースからコピーされた説明: DisposableBean
      Bean の破棄時に、包含 BeanFactory によって呼び出されます。
      次で指定:
      インターフェース DisposableBeandestroy 
    • onApplicationEvent

      public void onApplicationEvent(ApplicationContextEvent event)
      ContextRefreshedEvent および ContextClosedEvent に反応し、それぞれ finishRegistration() を実行し、スケジュールされたタスクを早期にキャンセルします。
      次で指定:
      インターフェース ApplicationListener<ApplicationContextEvent>onApplicationEvent 
      パラメーター:
      event - 応答するイベント