En Java EE 6 hay un nuevo concepto que son los stereotypes, es un concepto muy util ya que nos permite crear anotaciones que engloben otras anotaciones dandole un sentido a todo el conjunto.
Por ejemplo en el estandar viene un stereotype: “javax.enterprise.inject.Model” que esta pensado para definir en un aplicacion web que siga el patrón MVC la capa del modelo. Este stereotype engloba 2 anotaciones “@Named” y “@RequestScope”.
La anotación se define asi:
@Named
@RequestScoped
@Stereotype
@Target({TYPE, METHOD})
@Retention(RUNTIME)
public @interface Model {}
Y se usaria de la siguiente forma:
@Model
public class SampleBean
{
private String value;
public String getValue() { return value; }
public String setValue(String value) { this.value = value; }
}
Y se puede usar en la JSF como sigue:
Nosotros podemos crearnos nuestros propios stereotypes para englobar varias anotaciones y asi no tener clases con un listado inmenso de anotaciones que además casi siempre son las mismas.
Ademas es posible sobreescribir el comportamiento de un stereotype si se define en el lugar de uso otra anotacion que excluya a una que contenga.
Ejemplo:
@SessionScope
@Model
public class SampleBean
{
private String value;
public String getValue() { return value; }
public String setValue(String value) { this.value = value; }
}
En este ejemplo lo hemos modificado para que tenga SessionScope en vez de RequestScope.
0 comentarios