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