Una anotación en Java es una forma de añadir metadatos al código fuente en tiempo de ejecución jugando con ellas las API´s de reflexión ( java.lang.reflect ). Estas son fundamentales para los EJB3 ya que con ellas indicamos el tipo de bean, forma de persistencia,..., recordamos que un EJB3 es un "POJO + @ (anotación)". Otra características de las anotaciones es que posibilita el control sobre los aspectos de la programación orientada a Aspectos (AOP), como ejemplo la seguridad.
Para que una anotación sea detectable en tiempo de ejecución se ha de hacer uso de la siguinete anotación: @Retention(value=RetentionPolicy.RUNTIME).
Las anotaciones pueden aplicarse tanto a clases como a propiedades, métodos...
Las Anotaciones son declaradas igual que las interfaces con la única excepción de que lleva precedico el caracter @. Veamos un ejemplo :
//Creamos una clase tipo enumerado.
package es.ejemplo.anotacion;
public enum TipoUsuario { cliente,administrador }
|
//Creamos una anotación.
package es.ejemplo.anotacion;
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;
/*La linea siguiente es obligatoria para que sea detectable en tiempo de ejecución.*/ @Retention(value=RetentionPolicy.RUNTIME) public @interface AnotacionUsuario { TipoUsuario tipo(); //Se trata de un atributo de la anotación. }
|
//Aplicamos la anotación a una clase de ejemplo.
package es.ejemplo.anotacion;
@AnotacionUsuario(tipo=TipoUsuario.cliente) public class ExisteAnotacion {
//Propiedades y métodos a implementar... }
|
//Comprobamos que realmente existe la anotación.
package es.ejemplo.anotacion;
import org.testng.annotations.Test;
public class TestAnotacion{
@Test public void pruebaExisteAnotacion(){ if (ExisteAnotacion.class.isAnnotationPresent (AnotacionUsuario.class)) assert(true); else assert(false); } }
|
1 comentario:
muy currao!
Publicar un comentario