@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface Async
型レベルで使用することもできます。この場合、すべての型のメソッドは非同期と見なされます。ただし、@Async は、@Configuration クラス内で宣言されたメソッドではサポートされていないことに注意してください。
ターゲットメソッドのシグネチャーに関しては、すべてのパラメーター型がサポートされています。ただし、戻り値の型は void または FutureSE に制限されます。後者の場合、より具体的な ListenableFuture または CompletableFutureSE 型を宣言することができます。これにより、非同期タスクとのより豊かな相互作用が可能になり、さらなる処理ステップで即時に構成できます。
プロキシから返される Future ハンドルは、非同期メソッドの実行結果を追跡するために使用できる実際の非同期 Future になります。ただし、ターゲットメソッドは同じ署名を実装する必要があるため、値を渡すだけの一時的な Future ハンドルを返す必要があります。Spring の AsyncResult、EJB 3.1 の AsyncResultEE、または CompletableFuture.completedFuture(Object)SE
AnnotationAsyncExecutionInterceptor, AsyncAnnotationAdvisorpublic abstract StringSE value
特定の ExecutorSE または TaskExecutor Bean 定義の修飾子値(または Bean 名)と一致する、非同期操作を実行するときに使用するターゲットエグゼキューターを決定するために使用できます。
クラスレベルの @Async アノテーションで指定されている場合、指定されたエグゼキューターをクラス内のすべてのメソッドに使用する必要があることを示します。Async#value のメソッドレベルの使用は、クラスレベルで設定された値を常にオーバーライドします。