パッケージ jakarta.enterprise.inject

アノテーション型 Alternative


  • @TargetSE({TYPESE,METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    @DocumentedSE
    public @interface Alternative

    Bean が代替であることを指定します。Bean クラス、プロデューサーメソッド、フィールド、ステレオタイプに適用できます。

     @Alternative
     public class MockOrder extends Order { ... }
     

    モジュールが Bean アーカイブであり、その Bean アーカイブで代替が明示的に選択されていない限り、モジュール内のクラスまたは JSP/JSF ページへのインジェクション、ルックアップ、EL 解決に代替は使用できません。Bean アーカイブではないモジュールで、インジェクション、ルックアップ、EL 解決に代替手段を使用することはできません。

    デフォルトでは、Bean アーカイブには選択された選択肢がありません。代替は、Bean アーカイブの beans.xml ファイルの <alternatives> 要素を使用して明示的に宣言する必要があります。<alternatives> エレメントには、Bean クラスとステレオタイプのリストが含まれています。次のいずれかの場合、Bean アーカイブの代替が選択されます。

    • 代替手段は、マネージド Bean またはセッション Bean であり、Bean の Bean クラスがリストされています。
    • 代替はプロデューサーのメソッド、フィールド、リソースであり、メソッドまたはフィールドを宣言する Bean クラスがリストされているか
    • 代替の @Alternative ステレオタイプがリストされます。
    作成者:
    Gavin King, Pete Muir