アノテーションインターフェース Async


メソッドを非同期実行の候補としてマークするアノテーション。

型レベルで使用することもできます。この場合、すべての型のメソッドは非同期と見なされます。ただし、@Async は、@Configuration クラス内で宣言されたメソッドではサポートされていないことに注意してください。

ターゲットメソッドシグネチャーに関しては、任意のパラメーター型がサポートされています。ただし、戻り値の型は void または FutureSE のいずれかに制限されます。後者の場合、より具体的な CompletableFutureSE 型を宣言して、非同期タスクとのより豊富な対話を可能にし、さらに処理ステップを即座に合成することができます。

プロキシから返される Future ハンドルは、非同期メソッド実行の結果を追跡するために使用できる実際の非同期 (Completable)Future になります。ただし、ターゲットメソッドは同じシグネチャーを実装する必要があるため、実行スレッドでの計算後に値を渡すだけの一時的な Future ハンドルを返す必要があります (通常は CompletableFuture.completedFuture(Object)SE 経由)。提供された値は、実行時に実際の非同期 Future ハンドルを通じて呼び出し元に公開されます。

導入:
3.0
作成者:
Juergen Hoeller, Chris Beams
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    指定された非同期操作の修飾子値。
  • 要素の詳細

    • value

      StringSE value
      指定された非同期操作の修飾子値。

      特定の ExecutorSE または TaskExecutor Bean 定義の修飾子値(または Bean 名)と一致する、非同期操作を実行するときに使用するターゲットエグゼキューターを決定するために使用できます。

      クラスレベルの @Async アノテーションで指定された場合、指定されたエグゼキュータをクラス内のすべてのメソッドに使用する必要があることを示します。メソッドレベルで Async#value を使用すると、クラスレベルで構成されたすべての修飾子の値が常にオーバーライドされます。

      SpEL 式 (例: "#{environment['myExecutor']}") またはプロパティプレースホルダー (例: "${my.app.myExecutor}") として指定された場合、修飾子の値は動的に解決されます。

      導入:
      3.1.2
      デフォルト:
      ""