インターフェース 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
- 関連事項:
ネストされたクラスの要約
ネストされたクラスフィールドのサマリー
インターフェース 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 intgetOrder()トランザクション同期内で実行順序を返します。default TransactionPhaseリスナーが呼び出されるTransactionPhaseを返します。voidprocessEvent(E event) 指定されたApplicationEventをすぐに処理します。default booleanトランザクション同期リスナーは非同期実行をサポートしません。ターゲットリスナー (processEvent(E)) のみが非同期実行をサポートする可能性があります。インターフェース 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インスタンス - 関連事項: