クラス AsyncAnnotationBeanPostProcessor

実装されたすべてのインターフェース:
SerializableSEAopInfrastructureBeanAwareBeanClassLoaderAwareBeanFactoryAwareBeanPostProcessorInstantiationAwareBeanPostProcessorSmartInstantiationAwareBeanPostProcessorOrdered

public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor
対応する AsyncAnnotationAdvisor を公開されたプロキシ(既存の AOP プロキシまたはすべてのターゲットのインターフェースを実装する新しく生成されたプロキシ)に追加することにより、クラスまたはメソッドレベルで Async アノテーションを保持する Bean に非同期呼び出し動作を自動的に適用する Bean ポストプロセッサー)。

非同期実行を担当する TaskExecutor と、メソッドを非同期で呼び出す必要があることを示すアノテーション型を指定できます。アノテーション型が指定されていない場合、このポストプロセッサーは Spring の @Async アノテーションと EJB 3.1 jakarta.ejb.Asynchronous アノテーションの両方を検出します。

void の戻り値の型を持つメソッドの場合、非同期メソッドの呼び出し中にスローされた例外には、呼び出し元はアクセスできません。これらのケースを処理するために AsyncUncaughtExceptionHandler を指定できます。

メモ: 基礎となる非同期 advisor は、呼び出しチェーンでできるだけ早く非同期実行に切り替えるために、デフォルトで既存の advisor の前に適用されます。

導入:
3.0
作成者:
Mark Fisher, Juergen Hoeller, Stephane Nicoll
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • AsyncAnnotationBeanPostProcessor

      public AsyncAnnotationBeanPostProcessor()
  • メソッドの詳細

    • configure

      public void configure(@Nullable SupplierSE<ExecutorSE> executor, @Nullable SupplierSE<AsyncUncaughtExceptionHandler> exceptionHandler)
      指定されたエグゼキューターと例外ハンドラーのサプライヤーでこのポストプロセッサーを設定し、サプライヤーが解決できない場合は対応するデフォルトを適用します。
      導入:
      5.1
    • setExecutor

      public void setExecutor(ExecutorSE executor)
      メソッドを非同期に呼び出すときに使用する ExecutorSE を設定します。

      指定しない場合、デフォルトのエグゼキューター解決が適用されます。コンテキスト内の固有の TaskExecutor Bean を検索するか、それ以外の場合は "taskExecutor" という名前の ExecutorSE Bean を検索します。2 つとも解決できない場合は、ローカルのデフォルトエグゼキューターがインターセプター内に作成されます。

      関連事項:
    • setExceptionHandler

      public void setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler)
      非同期メソッド実行によってスローされたキャッチされない例外を処理するために使用する AsyncUncaughtExceptionHandler を設定します。
      導入:
      4.1
    • setAsyncAnnotationType

      public void setAsyncAnnotationType(ClassSE<? extends AnnotationSE> asyncAnnotationType)
      クラスレベルまたはメソッドレベルで検出される「非同期」アノテーション型を設定します。デフォルトでは、Async アノテーションと EJB 3.1 jakarta.ejb.Asynchronous アノテーションの両方が検出されます。

      この setter プロパティは、開発者が独自の(Spring 固有ではない)アノテーション型を提供して、メソッド(または特定のクラスのすべてのメソッド)を非同期で呼び出す必要があることを示すために存在します。

      パラメーター:
      asyncAnnotationType - 目的のアノテーション型
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

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

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      オーバーライド:
      クラス AbstractBeanFactoryAwareAdvisingPostProcessorsetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項: