アノテーションインターフェース Async
型レベルで使用することもできます。この場合、すべての型のメソッドは非同期と見なされます。ただし、@Async
は、@Configuration
クラス内で宣言されたメソッドではサポートされていないことに注意してください。
ターゲットメソッドのシグネチャーに関しては、すべてのパラメーター型がサポートされています。ただし、戻り値の型は void
または Future
SE に制限されます。後者の場合、より具体的な ListenableFuture
または CompletableFuture
SE 型を宣言することができます。これにより、非同期タスクとのより豊かな相互作用が可能になり、さらなる処理ステップで即時に構成できます。
プロキシから返される Future
ハンドルは、非同期メソッド実行の結果を追跡するために使用できる実際の非同期 Future
になります。ただし、ターゲットメソッドは同じ署名を実装する必要があるため、値を渡すだけの一時的な Future
ハンドルを返す必要があります。たとえば、Spring の AsyncResult
、EJB 3.1 の AsyncResult
EE、または CompletableFuture.completedFuture(Object)
SE です。
- 導入:
- 3.0
- 作成者:
- Juergen Hoeller, Chris Beams
- 関連事項:
オプション要素の概要
オプション要素
要素の詳細
value
StringSE value指定された非同期操作の修飾子値。特定の
Executor
SE またはTaskExecutor
Bean 定義の修飾子値(または Bean 名)と一致する、非同期操作を実行するときに使用するターゲットエグゼキューターを決定するために使用できます。クラスレベルの
@Async
アノテーションで指定された場合、指定されたエグゼキュータをクラス内のすべてのメソッドに使用する必要があることを示します。メソッドレベルでAsync#value
を使用すると、クラスレベルで構成されたすべての修飾子の値が常にオーバーライドされます。SpEL 式 (例:
"#{environment['myExecutor']}"
) またはプロパティプレースホルダー (例:"${my.app.myExecutor}"
) として指定された場合、修飾子の値は動的に解決されます。- 導入:
- 3.1.2
- デフォルト:
- ""