アノテーション型 Observes
@TargetSE(PARAMETERSE) @RetentionSE(RUNTIMESE) @DocumentedSE public @interface Observes
オブザーバーメソッドのイベントパラメーターを識別します。Bean クラスまたは拡張機能のメソッドのパラメーターに適用できます。
public void afterLogin(@Observes LoggedInEvent event) { ... }
オブザーバーメソッドは、マネージ Bean クラスまたはセッション Bean クラス(または拡張機能)の非抽象メソッドです。オブザーバーメソッドは、静的または非静的のいずれかです。Bean がセッション Bean の場合、オブザーバーメソッドは EJB のビジネスメソッドまたは Bean クラスの静的メソッドのいずれかである必要があります。
各オブザーバーメソッドには、オブザーバーするイベント型と同じ型のイベントパラメーターが 1 つだけ必要です。イベント修飾子は、イベントパラメーターにアノテーションを付けることで宣言できます。イベントのオブザーバーメソッドを検索するとき、コンテナーはイベントパラメーターの型と修飾子を考慮します。
イベントパラメーターが修飾子を明示的に宣言していない場合、オブザーバーメソッドは修飾子のないイベントを監視します。
イベントパラメーター型には、型変数またはワイルドカードを含めることができます。
イベントパラメーターに加えて、オブザーバメソッドは修飾子を宣言する可能性のある追加のパラメーターを宣言する場合があります。これらの追加パラメーターはインジェクションポイントです。
public void afterLogin(@Observes LoggedInEvent event, @Manager User user, Logger log) { ... }
Bean(または拡張機能)は、複数のオブザーバーメソッドを宣言する場合があります。
オブザーバーメソッドは Bean サブクラスに継承されます。
インターセプターとデコレーターはオブザーバーメソッドを宣言できません。
- 作成者:
- Gavin King, Pete Muir, David Allen
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 TransactionPhase
during
オブザーバーメソッドに通知する時刻を指定します。Reception
notifyObserver
オブザーバーメソッドに通知する条件を指定します。
要素の詳細
notifyObserver
Reception notifyObserver
オブザーバーメソッドに通知する条件を指定します。
デフォルトでは、オブザーバーメソッドを定義する Bean のインスタンスが現在のコンテキストにまだ存在しない場合でも、オブザーバーメソッドに通知されます。
- 戻り値:
- 条件付きオブザーバー型
- デフォルト:
- jakarta.enterprise.event.Reception.ALWAYS
during
TransactionPhase during
オブザーバーメソッドに通知する時刻を指定します。
デフォルトでは、イベントが発生したときにオブザーバーメソッドに通知されます。
- 戻り値:
- トランザクションのフェーズ
- デフォルト:
- jakarta.enterprise.event.TransactionPhase.IN_PROGRESS