パッケージ jakarta.enterprise.event
イベントに関連するアノテーションとインターフェース。
Bean はイベントを生成および消費できます。イベントを使用すると、対話する Bean 間でコンパイル時の依存関係を持たずに、Bean が完全に分離された方法で対話できるようになります。最も重要なことは、アプリケーションの 1 つのアーキテクチャ層にあるステートフル Bean が、その内部状態を別の層で発生する状態変化と同期できることです。
イベントは同期的または非同期的に発生します。
イベントは以下を含みます:
- イベントオブジェクトと呼ばれる Java オブジェクト
- イベント修飾子と呼ばれる、修飾子型のインスタンスの(場合によっては空の)セット
Event
インターフェースは、イベントを発生させるために使用されます。
イベントオブジェクトとイベント型
イベントオブジェクトはペイロードとして機能し、プロデューサーからコンシューマーに状態を伝播します。イベントオブジェクトは、型変数のない具象 Java クラスのインスタンスです。
イベントのイベント型には、イベントオブジェクトのランタイムクラスのすべてのスーパークラスとインターフェースが含まれます。イベント型に型変数を含めることはできません。
イベント修飾子
イベント修飾子はトピックセレクターとして機能し、コンシューマーが監視するイベントのセットを絞り込むことができます。イベント修飾子は、任意の修飾子型のインスタンスにすることができます。
オブザーバーメソッド
オブザーバーメソッドを使用すると、アプリケーションはイベント通知を同期的に受信して応答できます。また、非同期オブザーバーメソッドを使用すると、アプリケーションはイベント通知を非同期で受信して応答できます。これらは両方ともイベントコンシューマーとして機能し、特定の修飾子のセットを使用して特定の型のイベントを監視します。任意の Java 型は、オブザーバーメソッドによって監視できます。
オブザーバーメソッドは、@Observes
または @ObservesAsync
というアノテーションが付けられたパラメーターを持つ Bean クラスまたは拡張のメソッドです。
以下の場合、オブザーバーメソッドにイベントが通知されます。
- イベントオブジェクトは、observer メソッドによって監視される型に割り当てることができます。
- オブザーバーメソッドには、イベントのすべてのイベント修飾子があり
- イベントがコンテナーライフサイクルイベントではないか、オブザーバメソッドが拡張機能に属しているかのいずれかです。
同期オブザーバーメソッドがトランザクションオブザーバーメソッドであり、イベントが発生したときに進行中の JTA トランザクションがある場合、オブザーバーメソッドは適切なトランザクション完了フェーズ中に通知されます。それ以外の場合は、イベントが発生したときにオブザーバーに通知されます。
オブザーバメソッドが呼び出される順序は、@ の値に依存して優先観察者に適用されます。
オブザーバーに優先度が定義されていない場合、その優先度は jakarta.interceptor.Interceptor.Priority.APPLICATION+500 になります。
2 人のオブザーバが同じ優先度を持っている場合、それらの相対的な順序は定義されていません。
オブザーバーメソッドは例外をスローする場合があります。
- オブザーバーメソッドがトランザクションオブザーバーメソッドの場合、例外はコンテナーによってキャッチされ、ログに記録されます。
- オブザーバーメソッドが非同期の場合、例外はコンテナーによってキャッチされ、アプリケーションで処理できる
CompletionException
SE に抑制された例外として追加されます。 - それ以外の場合、例外はイベントの処理を中止します。そのイベントの他のオブザーバーメソッドは呼び出されません。例外は再スローされます。例外がチェックされた例外である場合、ラップされ、(チェックされていない)
ObserverException
として再スローされます。
インターフェースのサマリー インターフェース 説明 Event<T> 特定の型のイベントを起動することをアプリケーションに許可します。NotificationOptions 通知オプションは、オブザーバー通知を構成するために使用されます。NotificationOptions.Builder 通知オプションビルダー。クラスのサマリー クラス 説明 Shutdown Startup 列挙型のサマリー 列挙型 説明 Reception 条件付きオブザーバーメソッドを、常に通知されるオブザーバーメソッドと区別します。TransactionPhase さまざまな種類のトランザクションオブザーバーメソッドを、すぐに通知される通常のオブザーバーメソッドと区別します。例外のサマリー 例外 説明 ObserverException イベント通知中にオブザーバーメソッドによってチェック済み例外がスローされたことを示します。アノテーション型のサマリー アノテーション型 説明 Observes オブザーバーメソッドのイベントパラメーターを識別します。ObservesAsync 非同期オブザーバーメソッドのイベントパラメーターを識別します。