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


@TargetSE({METHODSE,ANNOTATION_TYPESE}) @RetentionSE(RUNTIMESE) @DocumentedSE @EventListener public @interface TransactionalEventListener
TransactionPhase に従って呼び出される EventListener。これは、TransactionalApplicationListener と同等のアノテーションベースです。

イベントがアクティブなトランザクション内で公開されていない場合、fallbackExecution() フラグが明示的に設定されていない限り、イベントは破棄されます。トランザクションが実行されている場合、イベントはその TransactionPhase に従って処理されます。

アノテーション付きメソッドに @Order を追加すると、トランザクション完了の前または後に実行されている他のリスナーの中でそのリスナーに優先順位を付けることができます。

6.1 以降、トランザクションイベントリスナーは、PlatformTransactionManager によって管理されるスレッドバインドされたトランザクションだけでなく、ReactiveTransactionManager によって管理されるリアクティブトランザクションも操作できます。前者の場合、リスナーは現在のスレッドバインドされたトランザクションを確認できることが保証されます。後者はスレッドローカル変数の代わりに Reactor コンテキストを使用するため、トランザクションコンテキストを発行されたイベントインスタンスにイベントソースとして含める必要があります。TransactionalEventPublisher を参照してください。

警告 TransactionPhase が AFTER_COMMIT(デフォルト)、AFTER_ROLLBACKAFTER_COMPLETION に設定されている場合、トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースは引き続きアクティブでアクセス可能である可能性があります。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」しますが、変更はトランザクションリソースにコミットされません。詳細については、TransactionSynchronization.afterCompletion(int) を参照してください。

導入:
4.2
作成者:
Stephane Nicoll, Sam Brannen, Oliver Drotbohm
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    ClassSE<?>[]
    このリスナーが処理するイベントクラス。
    イベント処理を条件付きにするために使用される Spring 式言語(SpEL)属性。
    boolean
    トランザクションが実行されていない場合にイベントを処理する必要があるかどうか。
    リスナーのオプションの識別子。デフォルトでは、宣言メソッドの完全修飾署名になります(例:
    イベントの処理をバインドするフェーズ。
    ClassSE<?>[]
    classes() のエイリアス。
  • 要素の詳細