アノテーション型 Stereotype
@RetentionSE(RUNTIMESE) @TargetSE(ANNOTATION_TYPESE) @DocumentedSE public @interface Stereotype
アノテーション型がステレオタイプであることを指定します。
多くのシステムでは、アーキテクチャパターンを使用すると、一連の繰り返し Bean ロールが生成されます。ステレオタイプを使用すると、フレームワーク開発者はそのようなロールを識別し、そのロールを持つ Bean の共通のメタデータを中心に宣言できます。
Bean は、Bean クラスまたはプロデューサーメソッドまたはフィールドにステレオタイプアノテーションを適用することにより、ゼロ、1 つ、複数のステレオタイプを宣言できます。
ステレオタイプは、以下の組み合わせをカプセル化します。
- デフォルトのスコープ、および
- インターセプターバインディングのセット。
ステレオタイプのデフォルトのスコープは、ステレオタイプにスコープ型のアノテーションを付けることによって定義されます。ステレオタイプは最大で 1 つのスコープを宣言できます。Bean がスコープを明示的に宣言した場合、そのステレオタイプによって宣言されたデフォルトのスコープは無視されます。
@RequestScoped @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
ステレオタイプのインターセプターバインディングは、ステレオタイプにインターセプターバインディング型のアノテーションを付けることによって定義されます。ステレオタイプは、0、1、または複数のインターセプターバインディングを宣言できます。ステレオタイプによって宣言されたインターセプターバインディングは、そのステレオタイプを宣言する Bean によって継承されます。
@RequestScoped @Secure @Transactional @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
ステレオタイプでは、次のことも指定できます。
- ステレオタイプのすべての Bean にはデフォルトの Bean EL 名があるか
- ステレオタイプを持つすべての Bean が代替である、またはその
- ステレオタイプを持つすべての Bean には、事前定義された
@Priority
があります。
ステレオタイプは空の
@Named
アノテーションを宣言できます。これは、Bean によって名前が明示的に指定されていない場合に、ステレオタイプを持つすべての Bean にデフォルトの名前があることを指定します。@RequestScoped @Named @Secure @Transactional @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
ステレオタイプは、
@Alternative
アノテーションを宣言できます。これは、ステレオタイプを持つすべての Bean が代替であることを指定します。@Alternative @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Mock { }
ステレオタイプは、
@Priority
アノテーションを宣言することができます。これは、ステレオタイプを持つすべての Bean が有効であり、優先されることを指定します。@Alternative @Priority(1) @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Mock { }
ステレオタイプは他のステレオタイプを宣言できます。ステレオタイプ宣言は推移的です。2 番目のステレオタイプによって宣言されたステレオタイプは、2 番目のステレオタイプを宣言するすべての Bean およびその他のステレオタイプによって継承されます。
- 作成者:
- Pete Muir, Gavin King
- 関連事項:
the built-in stereotype Model