インターフェース TransactionalApplicationListener<E extends ApplicationEvent>
- 型パラメーター:
E
- 待機する特定のApplicationEvent
サブクラス
- すべてのスーパーインターフェース:
ApplicationListener<E>
、EventListenerSE
、Ordered
public interface TransactionalApplicationListener<E extends ApplicationEvent>
extends ApplicationListener<E>, Ordered
TransactionPhase
に従って呼び出される ApplicationListener
。これは、TransactionalEventListener
アノテーションとプログラム的に同等です。 リスナーの実装に Ordered
を追加すると、トランザクションの完了前または完了後に実行されている他のリスナーの中で、そのリスナーに優先順位を付けることができます。
6.1 以降、トランザクションイベントリスナーは、PlatformTransactionManager
によって管理されるスレッドバインドされたトランザクションだけでなく、ReactiveTransactionManager
によって管理されるリアクティブトランザクションも操作できます。前者の場合、リスナーは現在のスレッドバインドされたトランザクションを確認できることが保証されます。後者はスレッドローカル変数の代わりに Reactor コンテキストを使用するため、トランザクションコンテキストを発行されたイベントインスタンスにイベントソースとして含める必要があります。TransactionalEventPublisher
を参照してください。
- 導入:
- 5.3
- 作成者:
- Juergen Hoeller, Oliver Drotbohm
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラスフィールドサマリー
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
方法の概要
修飾子と型メソッド説明void
トランザクション同期内の処理時に呼び出されるコールバックを追加します。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
リスナーが個別に参照できるように識別子を返します。default int
getOrder()
トランザクション同期内で実行順序を返します。default TransactionPhase
リスナーが呼び出されるTransactionPhase
を返します。void
processEvent
(E event) 指定されたApplicationEvent
をすぐに処理します。default boolean
トランザクション同期リスナーは非同期実行をサポートしません。ターゲットリスナー (processEvent(E)
) のみが非同期実行をサポートする可能性があります。インターフェース org.springframework.context.ApplicationListener から継承されたメソッド
onApplicationEvent
メソッドの詳細
getOrder
default int getOrder()トランザクション同期内で実行順序を返します。デフォルトは
Ordered.LOWEST_PRECEDENCE
です。supportsAsyncExecution
default boolean supportsAsyncExecution()トランザクション同期リスナーは非同期実行をサポートしません。ターゲットリスナー (processEvent(E)
) のみが非同期実行をサポートする可能性があります。- 次で指定:
- インターフェース
ApplicationListener<E extends ApplicationEvent>
のsupportsAsyncExecution
- 戻り値:
- このリスナーインスタンスがマルチキャスター設定 (デフォルト) に応じて非同期で実行できる場合は
true
、イベントを発行した元のスレッド内ですぐに実行する必要がある場合はfalse
- 導入:
- 6.1
- 関連事項:
getListenerId
リスナーが個別に参照できるように識別子を返します。特定の完了コールバックの実装では特定の ID を提供する必要がある場合がありますが、他のシナリオでは、空の文字列(共通のデフォルト値として)も使用できます。
getTransactionPhase
リスナーが呼び出されるTransactionPhase
を返します。デフォルトのフェーズは
TransactionPhase.AFTER_COMMIT
です。addCallback
トランザクション同期内の処理時、つまり実際のトランザクション中にprocessEvent(E)
がトリガーされたときに呼び出されるコールバックを追加します。- パラメーター:
callback
- 適用する同期コールバック
processEvent
指定されたApplicationEvent
をすぐに処理します。ApplicationListener.onApplicationEvent(ApplicationEvent)
とは対照的に、このメソッドの呼び出しは、関連付けられたtransaction phase
に延期することなく、指定されたイベントを直接処理します。- パラメーター:
event
- ターゲットリスナーの実装を通じて処理するイベント
forPayload
static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> forPayload(ConsumerSE<T> consumer) 指定されたペイロードコンシューマー用に新しいTransactionalApplicationListener
を作成し、デフォルトのフェーズTransactionPhase.AFTER_COMMIT
に適用します。- 型パラメーター:
T
- イベントペイロードの型- パラメーター:
consumer
- イベントペイロードコンシューマー- 戻り値:
- 対応する
TransactionalApplicationListener
インスタンス - 関連事項:
forPayload
static <T> TransactionalApplicationListener<PayloadApplicationEvent<T>> forPayload(TransactionPhase phase, ConsumerSE<T> consumer) 指定されたペイロードコンシューマー用に新しいTransactionalApplicationListener
を作成します。- 型パラメーター:
T
- イベントペイロードの型- パラメーター:
phase
- リスナーを呼び出すトランザクションフェーズconsumer
- イベントペイロードコンシューマー- 戻り値:
- 対応する
TransactionalApplicationListener
インスタンス - 関連事項: