パッケージ jakarta.enterprise.event

アノテーションインターフェース 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
  • 要素の詳細

    • notifyObserver

      Reception notifyObserver

      オブザーバーメソッドに通知する条件を指定します。

      デフォルトでは、オブザーバーメソッドを定義する Bean のインスタンスが現在のコンテキストにまだ存在しない場合でも、オブザーバーメソッドに通知されます。

      戻り値:
      条件付きオブザーバー型
      デフォルト:
      ALWAYS
    • during

      オブザーバーメソッドに通知する時刻を指定します。

      デフォルトでは、イベントが発生したときにオブザーバーメソッドに通知されます。

      戻り値:
      トランザクションのフェーズ
      デフォルト:
      IN_PROGRESS