クラス AsyncExecutionAspectSupport

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

public abstract class AsyncExecutionAspectSupport extends ObjectSE implements BeanFactoryAware
org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor や org.springframework.scheduling.aspectj.AnnotationAsyncExecutionAspect などの非同期メソッド実行アスペクトの基本クラス。

メソッドごとにエグゼキューター修飾をサポートします。AsyncExecutionAspectSupport オブジェクトはデフォルトの  Executor で構築する必要がありますが、個々のメソッドは、アノテーション属性などを使用して、特定の Executor Bean を実行時に使用するようにさらに修飾できます。

導入:
3.1.2
作成者:
Chris Beams, Juergen Hoeller, Stephane Nicoll, He Bo, Sebastien Deleuze
  • フィールドの詳細

    • DEFAULT_TASK_EXECUTOR_BEAN_NAME

      public static final StringSE DEFAULT_TASK_EXECUTOR_BEAN_NAME
      ピックアップする TaskExecutor Bean のデフォルト名: "taskExecutor"。

      最初の検索は型ごとに行われることに注意してください。これは、コンテキストで複数のエグゼキューター Bean が見つかった場合の単なるフォールバックです。

      導入:
      4.2.6
      関連事項:
    • logger

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

    • AsyncExecutionAspectSupport

      public AsyncExecutionAspectSupport(@Nullable ExecutorSE defaultExecutor)
      デフォルトの AsyncUncaughtExceptionHandler で新しいインスタンスを作成します。
      パラメーター:
      defaultExecutor - 委譲先の Executor (通常は Spring AsyncTaskExecutor または ExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。
    • AsyncExecutionAspectSupport

      public AsyncExecutionAspectSupport(@Nullable ExecutorSE defaultExecutor, AsyncUncaughtExceptionHandler exceptionHandler)
      指定された例外ハンドラーで新しい AsyncExecutionAspectSupport を作成します。
      パラメーター:
      defaultExecutor - 委譲先の Executor (通常は Spring AsyncTaskExecutor または ExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。
      exceptionHandler - 使用する AsyncUncaughtExceptionHandler
  • メソッドの詳細

    • configure

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

      public void setExecutor(ExecutorSE defaultExecutor)
      非同期メソッドの実行時に使用するエグゼキューターを指定します。
      パラメーター:
      defaultExecutor - 委譲先の Executor (通常は Spring AsyncTaskExecutor または ExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。
      関連事項:
    • setExceptionHandler

      public void setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler)
      void 戻り値型で非同期メソッドを呼び出すことによってスローされた例外を処理するために使用する AsyncUncaughtExceptionHandler を提供します。
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      修飾子でエグゼキューターを検索するとき、またはデフォルトのエグゼキュータールックアップアルゴリズムに依存するときに使用する BeanFactory を設定します。
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • determineAsyncExecutor

      @Nullable protected AsyncTaskExecutor determineAsyncExecutor(MethodSE method)
      特定のメソッドを実行するときに使用する特定のエグゼキューターを決定します。
      戻り値:
      使用するエグゼキュータ (または null、ただしデフォルトのエグゼキュータが利用できない場合)
    • getExecutorQualifier

      @Nullable protected abstract StringSE getExecutorQualifier(MethodSE method)
      指定された非同期メソッドを実行するときに使用されるエグゼキューターの修飾子または Bean 名を返します。これは通常、アノテーション属性の形式で指定されます。

      空の文字列または null を返すことは、特定のエグゼキュータが指定されておらず、デフォルトのエグゼキュータを使用する必要があることを示します。

      パラメーター:
      method - エグゼキューター修飾子メタデータをインスペクションするメソッド
      戻り値:
      指定されている場合は修飾子、それ以外の場合は空の文字列または null
      関連事項:
    • findQualifiedExecutor

      @Nullable protected ExecutorSE findQualifiedExecutor(@Nullable BeanFactory beanFactory, StringSE qualifier)
      指定された修飾子のターゲットエグゼキューターを取得します。
      パラメーター:
      qualifier - 解決する修飾子
      戻り値:
      ターゲットエグゼキューター、または使用可能な null がない場合
      導入:
      4.2.6
      関連事項:
    • getDefaultExecutor

      @Nullable protected ExecutorSE getDefaultExecutor(@Nullable BeanFactory beanFactory)
      このアドバイスインスタンスのデフォルトのエグゼキューターを取得またはビルドします。

      ここから返されたエグゼキュータは、後で使用するためにキャッシュされます。

      デフォルトの実装では、コンテキスト内で一意の TaskExecutor Bean を検索するか、それ以外の場合は "taskExecutor" という名前の ExecutorSE Bean を検索します。2 つとも解決できない場合、この実装は null を返します。

      パラメーター:
      beanFactory - デフォルトのエグゼキューター検索に使用する BeanFactory
      戻り値:
      デフォルトのエグゼキューター、または使用可能なものがなければ null 
      導入:
      4.2.6
      関連事項:
    • doSubmit

      @Nullable protected ObjectSE doSubmit(CallableSE<ObjectSE> task, AsyncTaskExecutor executor, ClassSE<?> returnType)
      選択したエグゼキューターで特定のタスクを実際に実行するためのデリゲート。
      パラメーター:
      task - 実行するタスク
      executor - 選ばれた執行者
      returnType - 宣言された戻り型 (潜在的に FutureSE バリアント)
      戻り値:
      実行結果 (潜在的に対応する FutureSE ハンドル)
    • handleError

      protected void handleError(ThrowableSE ex, MethodSE method, ObjectSE... params) throws ExceptionSE
      指定された MethodSE を非同期で呼び出しているときにスローされた致命的なエラーを処理します。

      メソッドの戻り型が FutureSE オブジェクトの場合、元の例外は、より高いレベルでスローするだけで伝播できます。ただし、他のすべてのケースでは、例外はクライアントに送信されません。後者の場合、現在の AsyncUncaughtExceptionHandler がそのような例外の管理に使用されます。

      パラメーター:
      ex - 処理する例外
      method - 呼び出されたメソッド
      params - メソッドの呼び出しに使用されるパラメーター
      例外:
      ExceptionSE