-
@Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) @Documented public @interface Stereotype
Specifies that an annotation type is a stereotype.
In many systems, use of architectural patterns produces a set of recurring bean roles. A stereotype allows a framework developer to identify such a role and declare some common metadata for beans with that role in a central place.
A bean may declare zero, one or multiple stereotypes, by applying the stereotype annotation to the bean class or producer method or field.
A stereotype encapsulates any combination of:
- a default scope, and
- a set of interceptor bindings.
The default scope of a stereotype is defined by annotating the stereotype with a scope type. A stereotype may declare at most one scope. If a bean explicitly declares a scope, any default scopes declared by its stereotypes are ignored.
@RequestScoped @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
The interceptor bindings of a stereotype are defined by annotating the stereotype with the interceptor binding types. A stereotype may declare zero, one or multiple interceptor bindings. An interceptor binding declared by a stereotype is inherited by any bean that declares that stereotype.
@RequestScoped @Secure @Transactional @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
A stereotype may also specify that:
- all beans with the stereotype have defaulted bean EL names, or that
- all beans with the stereotype are alternatives.
A stereotype may declare an empty
@Named
annotation, which specifies that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean.@RequestScoped @Named @Secure @Transactional @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Action { }
A stereotype may declare an
@Alternative
annotation, which specifies that every bean with the stereotype is an alternative.@Alternative @Stereotype @Target(TYPE) @Retention(RUNTIME) public @interface Mock { }
A stereotype may declare other stereotypes. Stereotype declarations are transitive. A stereotype declared by a second stereotype is inherited by all beans and other stereotypes that declare the second stereotype.
- Author:
- Pete Muir, Gavin King
- See Also:
the built-in stereotype @Model
Document created the 11/06/2005, last modified the 18/08/2025
Source of the printed document:https://www.gaudry.be/en/java-api-javaee-rf-javax/enterprise/inject/stereotype.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author of this site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.