パッケージ jakarta.enterprise.inject

アノテーションインターフェース Specializes


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE public @interface Specializes

Bean が別の Bean を直接特殊化していることを示します。Bean クラスまたはプロデューサーメソッドに適用できます。

Bean が 2 番目の Bean を直接特殊化する場合、次を継承します。

  • 2 番目の Bean のすべての修飾子、および
  • 2 番目の Bean の名前(ある場合)。

2 番目の Bean に名前がある場合、Bean は @Named を使用して名前を宣言しない場合があります。さらに、Bean には、2 番目の Bean のすべての Bean 型が必要です。

  • 管理対象 Bean の Bean クラスに @Specializes というアノテーションが付けられている場合、Bean クラスは 2 番目の管理対象 Bean の Bean クラスを直接拡張する必要があります。次に、最初のマネージド Bean は、2 番目のマネージド Bean を直接特殊化します。
  • セッション Bean の Bean クラスに @Specializes というアノテーションが付けられている場合、Bean クラスは 2 番目のセッション Bean の Bean クラスを直接拡張する必要があります。次に、最初のセッション Bean は、2 番目のセッション Bean を直接特殊化します。
  • プロデューサーメソッドに @Specializes アノテーションが付けられている場合、非静的であり、別のプロデューサーメソッドを直接オーバーライドする必要があります。次に、最初のプロデューサーメソッドは 2 番目のプロデューサーメソッドを直接特殊化します。

Bean が有効な Bean によって特殊化されている場合、最初の Bean は無効になります。

CDI Lite の実装は、特殊化のサポートを提供する必要はありません。

作成者:
Gavin King, Pete Muir
  • ネストされたクラスの概要

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static final class
    Specializes アノテーションのインラインインスタンス化をサポートします。