public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor
AsyncAnnotationAdvisor を公開されたプロキシ(既存の AOP プロキシまたはすべてのターゲットを実装する新しく生成されたプロキシ)に追加することにより、クラスまたはメソッドレベルで Async アノテーションを運ぶ Bean に非同期呼び出し動作を自動的に適用する Bean ポストプロセッサーインターフェース)。 非同期実行を担当する TaskExecutor と、メソッドを非同期で呼び出す必要があることを示すアノテーション型を指定できます。アノテーション型が指定されていない場合、このポストプロセッサーは Spring の @Async アノテーションと EJB 3.1 javax.ejb.Asynchronous アノテーションの両方を検出します。
void の戻り値の型を持つメソッドの場合、非同期メソッドの呼び出し中にスローされた例外には、呼び出し元はアクセスできません。これらのケースを処理するために AsyncUncaughtExceptionHandler を指定できます。
メモ: 基礎となる非同期 advisor は、呼び出しチェーンでできるだけ早く非同期実行に切り替えるために、デフォルトで既存の advisor の前に適用されます。
Async, AsyncAnnotationAdvisor, AbstractAdvisingBeanPostProcessor.setBeforeExistingAdvisors(boolean), ScheduledAnnotationBeanPostProcessor, 連載形式 | 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | DEFAULT_TASK_EXECUTOR_BEAN_NAME 取得する TaskExecutor Bean のデフォルト名: "taskExecutor"。 |
protected Log | logger |
advisor, beforeExistingAdvisorsHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
AsyncAnnotationBeanPostProcessor() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | setAsyncAnnotationType(ClassSE<? extends AnnotationSE> asyncAnnotationType) クラスレベルまたはメソッドレベルで検出される「非同期」アノテーション型を設定します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
void | setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler) 非同期メソッド実行によってスローされたキャッチされない例外を処理するために使用する AsyncUncaughtExceptionHandler を設定します。 |
void | setExecutor(ExecutorSE executor) メソッドを非同期に呼び出すときに使用する ExecutorSE を設定します。 |
prepareProxyFactorycustomizeProxyFactory, isEligible, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeforeExistingAdvisorsevaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoadercopyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toStringcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEpublic static final StringSE DEFAULT_TASK_EXECUTOR_BEAN_NAME
TaskExecutor Bean のデフォルト名: "taskExecutor"。最初の検索は型ごとに行われることに注意してください。これは、コンテキストで複数のエグゼキューター Bean が見つかった場合の単なるフォールバックです。
protected final Log logger
public void setAsyncAnnotationType(ClassSE<? extends AnnotationSE> asyncAnnotationType)
Async アノテーションと EJB 3.1 javax.ejb.Asynchronous アノテーションの両方が検出されます。この setter プロパティは、開発者が独自の(Spring 固有ではない)アノテーション型を提供して、メソッド(または特定のクラスのすべてのメソッド)を非同期で呼び出す必要があることを示すために存在します。
asyncAnnotationType - 目的のアノテーション型 public void setExecutor(ExecutorSE executor)
ExecutorSE を設定します。 指定されていない場合は、デフォルトのエグゼキュータ解決が適用されます。コンテキスト内で一意の TaskExecutor Bean を検索するか、それ以外の場合は "taskExecutor" という名前の ExecutorSE Bean を検索します。どちらも解決できない場合は、インターセプター内にローカルのデフォルトのエグゼキュータが作成されます。
public void setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler)
AsyncUncaughtExceptionHandler を設定します。public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware の setBeanFactory AbstractBeanFactoryAwareAdvisingPostProcessor の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException