パッケージ jakarta.enterprise.event

アノテーション型 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
    • 要素の詳細

      • notifyObserver

        Reception notifyObserver

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

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

        戻り値:
        条件付きオブザーバー型
        デフォルト:
        jakarta.enterprise.event.Reception.ALWAYS