クラス AsyncExecutionInterceptor

java.lang.ObjectSE
org.springframework.aop.interceptor.AsyncExecutionAspectSupport
org.springframework.aop.interceptor.AsyncExecutionInterceptor
実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanFactoryAwareOrdered
既知の直属サブクラス
AnnotationAsyncExecutionInterceptor

public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport implements MethodInterceptor, Ordered
特定の AsyncTaskExecutor を使用して、メソッド呼び出しを非同期に処理する AOP アライアンス MethodInterceptor。通常、Async アノテーションとともに使用されます。

ターゲットメソッドのシグネチャーに関しては、すべてのパラメーター型がサポートされています。ただし、戻り型は void または java.util.concurrent.Future に制限されます。後者の場合、プロキシから返される Future ハンドルは、非同期メソッド実行の結果を追跡するために使用できる実際の非同期 Future になります。ただし、ターゲットメソッドは同じ署名を実装する必要があるため、(Spring の AsyncResult や EJB の jakarta.ejb.AsyncResult のように) 戻り値を渡すだけの一時的な Future ハンドルを返す必要があります。

戻り値の型が java.util.concurrent.Future の場合、実行中にスローされた例外は、呼び出し元がアクセスして管理できます。ただし、void 戻り値型では、そのような例外を送信することはできません。その場合、そのような例外を処理するために AsyncUncaughtExceptionHandler を登録できます。

メモ: AnnotationAsyncExecutionInterceptor サブクラスは、Spring の @Async アノテーションと組み合わせてエグゼキューター修飾をサポートするため、優先されます。

導入:
3.0
作成者:
Juergen Hoeller, Chris Beams, Stephane Nicoll
関連事項:
  • コンストラクターの詳細

  • メソッドの詳細

    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
      指定されたメソッド呼び出しをインターセプトし、メソッドの実際の呼び出しを正しいタスクエグゼキューターに送信して、呼び出し元にすぐに戻ります。
      次で指定:
      インターフェース MethodInterceptorinvoke 
      パラメーター:
      invocation - インターセプトして非同期にするメソッド
      戻り値:
      元のメソッドが Future を返す場合は FutureSE。それ以外の場合は null
      例外:
      ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合
    • getExecutorQualifier

      @Nullable protected StringSE getExecutorQualifier(MethodSE method)
      特定のメソッドを実行するときに使用する特定のエグゼキューターの修飾子を取得します。

      このメソッドのデフォルトの実装は、事実上ノーオペレーションです。

      サブクラスはこのメソッドをオーバーライドして、たとえば指定されたメソッドのアノテーションを介して修飾子情報を抽出するためのサポートを提供できます。

      次で指定:
      クラス AsyncExecutionAspectSupportgetExecutorQualifier 
      パラメーター:
      method - エグゼキューター修飾子メタデータをインスペクションするメソッド
      戻り値:
      常に null
      導入:
      3.1.2
      関連事項:
    • getDefaultExecutor

      @Nullable protected ExecutorSE getDefaultExecutor(@Nullable BeanFactory beanFactory)
      この実装は、コンテキストで一意の TaskExecutor Bean を検索するか、それ以外の場合は "taskExecutor" という名前の ExecutorSE Bean を検索します。2 つとも解決できない場合(BeanFactory がまったく構成されていない場合など)、この実装は、デフォルトが見つからない場合、ローカルで使用するために新しく作成された SimpleAsyncTaskExecutor インスタンスにフォールバックします。
      オーバーライド:
      クラス AsyncExecutionAspectSupportgetDefaultExecutor 
      パラメーター:
      beanFactory - デフォルトのエグゼキューター検索に使用する BeanFactory
      戻り値:
      デフォルトのエグゼキューター、または使用可能なものがなければ null 
      関連事項:
    • getOrder

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

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

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

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