アノテーション型 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