クラス AsyncExecutionAspectSupport
java.lang.ObjectSE
org.springframework.aop.interceptor.AsyncExecutionAspectSupport
- 実装されているすべてのインターフェース:
Aware,BeanFactoryAware
- 既知の直属サブクラス
AsyncExecutionInterceptor
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
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE取得するTaskExecutorBean のデフォルト名: "taskExecutor"。protected final Logコンストラクターの概要
コンストラクターコンストラクター説明AsyncExecutionAspectSupport(ExecutorSE defaultExecutor) デフォルトのAsyncUncaughtExceptionHandlerで新しいインスタンスを作成します。AsyncExecutionAspectSupport(ExecutorSE defaultExecutor, AsyncUncaughtExceptionHandler exceptionHandler) 指定された例外ハンドラーで新しいAsyncExecutionAspectSupportを作成します。メソッドのサマリー
修飾子と型メソッド説明voidconfigure(SupplierSE<ExecutorSE> defaultExecutor, SupplierSE<AsyncUncaughtExceptionHandler> exceptionHandler) 指定されたエグゼキューターと例外ハンドラーのサプライヤーでこのアスペクトを設定し、サプライヤーが解決できない場合は対応するデフォルトを適用します。protected AsyncTaskExecutordetermineAsyncExecutor(MethodSE method) 特定のメソッドを実行するときに使用する特定のエグゼキューターを決定します。protected ObjectSEdoSubmit(CallableSE<ObjectSE> task, AsyncTaskExecutor executor, ClassSE<?> returnType) 選択したエグゼキューターで特定のタスクを実際に実行するためのデリゲート。protected ExecutorSEfindQualifiedExecutor(BeanFactory beanFactory, StringSE qualifier) 指定された修飾子のターゲットエグゼキューターを取得します。protected ExecutorSEgetDefaultExecutor(BeanFactory beanFactory) このアドバイスインスタンスのデフォルトのエグゼキューターを取得またはビルドします。protected abstract StringSEgetExecutorQualifier(MethodSE method) 指定された非同期メソッドを実行するときに使用されるエグゼキューターの修飾子または Bean 名を返します。これは通常、アノテーション属性の形式で指定されます。protected voidhandleError(ThrowableSE ex, MethodSE method, ObjectSE... params) 指定されたMethodSE を非同期で呼び出しているときにスローされた致命的なエラーを処理します。voidsetBeanFactory(BeanFactory beanFactory) 修飾子でエグゼキューターを検索するとき、またはデフォルトのエグゼキュータールックアップアルゴリズムに依存するときに使用するBeanFactoryを設定します。voidsetExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler) void戻り値型で非同期メソッドを呼び出すことによってスローされた例外を処理するために使用するAsyncUncaughtExceptionHandlerを提供します。voidsetExecutor(ExecutorSE defaultExecutor) 非同期メソッドの実行時に使用するエグゼキューターを指定します。
フィールドの詳細
DEFAULT_TASK_EXECUTOR_BEAN_NAME
取得するTaskExecutorBean のデフォルト名: "taskExecutor"。最初の検索は型ごとに行われることに注意してください。これは、コンテキストで複数のエグゼキューター Bean が見つかった場合の単なるフォールバックです。
- 導入:
- 4.2.6
- 関連事項:
logger
コンストラクターの詳細
AsyncExecutionAspectSupport
デフォルトのAsyncUncaughtExceptionHandlerで新しいインスタンスを作成します。- パラメーター:
defaultExecutor- 委譲先のExecutor(通常は SpringAsyncTaskExecutorまたはExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。
AsyncExecutionAspectSupport
public AsyncExecutionAspectSupport(@Nullable ExecutorSE defaultExecutor, AsyncUncaughtExceptionHandler exceptionHandler) 指定された例外ハンドラーで新しいAsyncExecutionAspectSupportを作成します。- パラメーター:
defaultExecutor- 委譲先のExecutor(通常は SpringAsyncTaskExecutorまたはExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。exceptionHandler- 使用するAsyncUncaughtExceptionHandler
メソッドの詳細
configure
public void configure(@Nullable SupplierSE<ExecutorSE> defaultExecutor, @Nullable SupplierSE<AsyncUncaughtExceptionHandler> exceptionHandler) 指定されたエグゼキューターと例外ハンドラーのサプライヤーでこのアスペクトを設定し、サプライヤーが解決できない場合は対応するデフォルトを適用します。- 導入:
- 5.1
setExecutor
非同期メソッドの実行時に使用するエグゼキューターを指定します。- パラメーター:
defaultExecutor- 委譲先のExecutor(通常は SpringAsyncTaskExecutorまたはExecutorServiceSE)。ただし、非同期メソッドの修飾子を介してより具体的なエグゼキューターがリクエストされていない場合、そのエグゼキューターは呼び出し時に囲まれた Bean ファクトリに対して呼び出されます。- 関連事項:
setExceptionHandler
void戻り値型で非同期メソッドを呼び出すことによってスローされた例外を処理するために使用するAsyncUncaughtExceptionHandlerを提供します。setBeanFactory
修飾子でエグゼキューターを検索するとき、またはデフォルトのエグゼキュータールックアップアルゴリズムに依存するときに使用するBeanFactoryを設定します。- 次で指定:
- インターフェース
BeanFactoryAwareのsetBeanFactory - パラメーター:
beanFactory- 所有 BeanFactory(非null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
determineAsyncExecutor
特定のメソッドを実行するときに使用する特定のエグゼキューターを決定します。- 戻り値:
- 使用するエグゼキュータ (または
null、ただしデフォルトのエグゼキュータが利用できない場合)
getExecutorQualifier
指定された非同期メソッドを実行するときに使用されるエグゼキューターの修飾子または Bean 名を返します。これは通常、アノテーション属性の形式で指定されます。空の文字列または
nullを返すことは、特定のエグゼキュータが指定されておらず、デフォルトのエグゼキュータを使用する必要があることを示します。- パラメーター:
method- エグゼキューター修飾子メタデータをインスペクションするメソッド- 戻り値:
- 指定されている場合は修飾子、それ以外の場合は空の文字列または
null - 関連事項:
findQualifiedExecutor
@Nullable protected ExecutorSE findQualifiedExecutor(@Nullable BeanFactory beanFactory, StringSE qualifier) 指定された修飾子のターゲットエグゼキューターを取得します。- パラメーター:
qualifier- 解決する修飾子- 戻り値:
- ターゲットエグゼキューター、または使用可能な
nullがない場合 - 導入:
- 4.2.6
- 関連事項:
getDefaultExecutor
このアドバイスインスタンスのデフォルトのエグゼキューターを取得またはビルドします。ここから返されたエグゼキュータは、後で使用するためにキャッシュされます。
デフォルトの実装では、コンテキスト内で一意の
TaskExecutorBean を検索するか、それ以外の場合は "taskExecutor" という名前のExecutorSE Bean を検索します。どちらも解決できない場合、この実装はnullを返します。- パラメーター:
beanFactory- デフォルトのエグゼキューター検索に使用する BeanFactory- 戻り値:
- デフォルトのエグゼキューター、または使用可能なものがなければ
null - 導入:
- 4.2.6
- 関連事項:
doSubmit
@Nullable protected ObjectSE doSubmit(CallableSE<ObjectSE> task, AsyncTaskExecutor executor, ClassSE<?> returnType) 選択したエグゼキューターで特定のタスクを実際に実行するためのデリゲート。handleError
指定されたMethodSE を非同期で呼び出しているときにスローされた致命的なエラーを処理します。メソッドの戻り型が
FutureSE オブジェクトの場合、元の例外は、より高いレベルでスローするだけで伝播できます。ただし、他のすべてのケースでは、例外はクライアントに送信されません。後者の場合、現在のAsyncUncaughtExceptionHandlerがそのような例外の管理に使用されます。- パラメーター:
ex- 処理する例外method- 呼び出されたメソッドparams- メソッドの呼び出しに使用されるパラメーター- 例外:
ExceptionSE