E
- 待機する特定の ApplicationEvent
サブクラス public interface TransactionalApplicationListener<E extends ApplicationEvent> extends ApplicationListener<E>, Ordered
TransactionPhase
に従って呼び出される ApplicationListener
。これは、TransactionalEventListener
アノテーションとプログラム的に同等です。 リスナーの実装に Ordered
を追加すると、トランザクションの補完前または完了後に実行されている他のリスナーの中で、そのリスナーに優先順位を付けることができます。
注: トランザクションイベントリスナーは、PlatformTransactionManager
によって管理されるスレッドバウンドトランザクションでのみ機能します。ReactiveTransactionManager
によって管理されるリアクティブトランザクションは、スレッドローカル変数の代わりに Reactor コンテキストを使用するため、イベントリスナーの観点からは、参加できる互換性のあるアクティブトランザクションはありません。
TransactionalEventListener
, TransactionalApplicationListenerAdapter
, forPayload(java.util.function.Consumer<T>)
修飾子と型 | インターフェースと説明 |
---|---|
static interface | TransactionalApplicationListener.SynchronizationCallback 同期駆動型イベント処理で呼び出されるコールバック。ターゲットリスナーの呼び出しをラップします( processEvent(E) )。 |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
修飾子と型 | メソッドと説明 |
---|---|
void | addCallback(TransactionalApplicationListener.SynchronizationCallback callback) トランザクション同期内の処理時に呼び出されるコールバックを追加します。 |
static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> | forPayload(ConsumerSE<T> consumer) 指定されたペイロードコンシューマー用に新しい TransactionalApplicationListener を作成し、デフォルトのフェーズ TransactionPhase.AFTER_COMMIT に適用します。 |
static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> | forPayload(TransactionPhase phase, ConsumerSE<T> consumer) 指定されたペイロードコンシューマー用に新しい TransactionalApplicationListener を作成します。 |
default StringSE | getListenerId() リスナーが個別に参照できるように識別子を返します。 |
default int | getOrder() トランザクション同期内で実行順序を返します。 |
default TransactionPhase | getTransactionPhase() リスナーが呼び出される TransactionPhase を返します。 |
void | processEvent(E event) 指定された ApplicationEvent をすぐに処理します。 |
onApplicationEvent
default int getOrder()
デフォルトは Ordered.LOWEST_PRECEDENCE
です。
Ordered
の getOrder
TransactionSynchronization.getOrder()
default StringSE getListenerId()
特定の補完コールバックの実装では特定の ID を提供する必要がある場合がありますが、他のシナリオでは、空の文字列(共通のデフォルト値として)も使用できます。
default TransactionPhase getTransactionPhase()
TransactionPhase
を返します。 デフォルトのフェーズは TransactionPhase.AFTER_COMMIT
です。
void addCallback(TransactionalApplicationListener.SynchronizationCallback callback)
processEvent(E)
がトリガーされたときに呼び出されるコールバックを追加します。callback
- 適用する同期コールバック void processEvent(E event)
ApplicationEvent
をすぐに処理します。ApplicationListener.onApplicationEvent(ApplicationEvent)
とは対照的に、このメソッドの呼び出しは、関連付けられた transaction phase
に延期することなく、指定されたイベントを直接処理します。event
- ターゲットリスナーの実装を通じて処理するイベント static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> forPayload(ConsumerSE<T> consumer)
TransactionalApplicationListener
を作成し、デフォルトのフェーズ TransactionPhase.AFTER_COMMIT
に適用します。ApplicationListener<E extends ApplicationEvent>
の forPayload
T
- イベントペイロードの型 consumer
- イベントペイロードコンシューマー TransactionalApplicationListener
インスタンス PayloadApplicationEvent.getPayload()
, TransactionalApplicationListenerAdapter
static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> forPayload(TransactionPhase phase, ConsumerSE<T> consumer)
TransactionalApplicationListener
を作成します。T
- イベントペイロードの型 phase
- リスナーを呼び出すトランザクションフェーズ consumer
- イベントペイロードコンシューマー TransactionalApplicationListener
インスタンス PayloadApplicationEvent.getPayload()
, TransactionalApplicationListenerAdapter