Anotaciones JavaSE

  • Comenzando con JDK5.0, Java agregó soporte para metadatos (MetaData), que es Anotación
  • La anotación es en realidad una marca especial en el código , estas marcas se pueden leer en la compilación, carga de clase, tiempo de ejecución y realizar el procesamiento correspondiente. Al usar Anotación , los programadores pueden incrustar información complementaria en el archivo fuente sin cambiar la lógica original. Las herramientas de análisis de código, las herramientas de desarrollo y las herramientas de implementación se pueden verificar o implementar a través de esta información complementaria
  • La anotación se puede usar como un modificador. Se puede usar para modificar la declaración de paquetes, clases, constructores, métodos, variables miembro, parámetros y variables locales . Esta información se almacena en el par de Anotación "nombre = valor".
  • El modelo de desarrollo JavaEE se basa básicamente en anotaciones
  • Hasta cierto punto, cuadro = anotación + reflexión + patrón de diseño

Ejemplos de anotaciones comunes

Generar notas relacionadas con la documentación.

  • @autor: identifique al autor que desarrolló el módulo, utilícelo entre varios autores y divídalo
  • @version: indica la versión del módulo
  • @see: Dirección de referencia (temas relacionados)
  • @since: desde qué versión aumentar
  • @param: descripción de un parámetro en el método
  • @return: descripción del valor de retorno del método
  • @exception: explique las excepciones que puede arrojar el método. Si el método no arroja excepciones explícitamente con theows, no puede escribir

Verificación de formato en tiempo de compilación (tres notas básicas integradas en JDK)

  • @Override: restringir la anulación de los métodos de la clase principal, esta anotación solo se puede usar para métodos
  • @Deprecated: se usa para indicar que el elemento modificado está desactualizado
  • @SupperssWarnings: suprimir las advertencias del compilador

Rastree dependencias de código e implemente funciones de archivo de configuración alternativas

  • @WebServlet: Anotaciones proporcionadas después de Servlet3.0, no puede implementar Servlet en web.xml

  • @Transactional: Gestión de "transacciones" en el marco de Spring

    @Transactional(propagation=Propagation.REQUIRES_NEW,Isolation=Isolation.READ_COMMITTED,isolation=Islation.READ_COMMITTED,readOnly=false,timeout=3)
    

Prueba de unidad de Junit

  • @Test: marcado en métodos no estáticos, solo los métodos marcados con @Test pueden usarse como métodos de prueba
  • @BeforeClass: marcado en un método estático, solo se ejecuta una vez y se ejecuta cuando se inicializa la clase
  • @AfterClass: marcado en un método estático, solo se ejecuta una vez y se ejecuta después de completar todos los métodos
  • @Before: marque en un método no estático, ejecute antes de @Test, ejecute antes de cada método @Test
  • @After: Marque en métodos no estáticos, ejecute después de @Test, ejecute después de cada método @Test
  • @Ignore: marcado en el método que no participa en la prueba esta vez

Nota: Las últimas cinco anotaciones se usan con @Test, no tiene sentido usar solo

Anotación personalizada

  • Use la palabra clave @interface para definir un nuevo tipo de Anotación

  • Las anotaciones personalizadas heredan automáticamente la interfaz java.lang.annotation.Annotation

  • Las variables miembro de anotación se declaran en la definición de Anotación como un método sin parámetros. El nombre del método y el valor de retorno definen el nombre y el tipo del miembro. Llamamos a este parámetro de configuración. El tipo solo puede ser una matriz de ocho tipos básicos, tipo de cadena, tipo de clase, tipo de enumeración, tipo de anotación, todos los tipos anteriores

  • Puede especificar el valor inicial de la variable miembro Anotación cuando la define. Puede usar la palabra clave predeterminada para especificar el valor inicial de la variable miembro

  • Si sólo un miembro de parámetros, se recomienda utilizar un parámetro llamado valor

  • Si la anotación definida contiene parámetros de configuración, entonces el valor del parámetro debe especificarse al usar

  • No hay miembros de anotación definido denominado marcador de anotación, que comprende una variable miembro llama Anotación metadatos

Nota: las anotaciones personalizadas deben ir acompañadas de un flujo de procesamiento de información anotado para que tenga sentido

Meta anotaciones en el JDK

¡La Meta Anotación de JDK se usa para modificar otras definiciones de Anotación !

JDK5.0 proporciona 4 tipos de metaanotación estándar, a saber:

  • Retención: se usa para modificar una definición de Anotación, se usa para especificar el ciclo de vida de la Anotación, @Rentention contiene una variable miembro de tipo RetentionPolicy , cuando se usa @Rentention, debe especificar un valor para la variable miembro de valor
    • RetentionPolicy.SOURCE: efectivo en el archivo fuente, el compilador descarta directamente los comentarios de esta estrategia
    • RetentionPolicy.CLASS: válido en el archivo de clase, la JVM no retendrá comentarios al ejecutar programas Java, el valor predeterminado
    • RetentionPolicy.TUNTIME: efectivo en tiempo de ejecución, cuando se ejecutan programas Java, la JVM retendrá comentarios. El programa puede obtener la anotación a través de la reflexión.
  • Objetivo: se usa para modificar la definición de Anotación, se usa para especificar qué elementos del programa pueden ser modificados por la Anotación modificada, @Target también contiene una variable miembro llamada valor
    • CONSTRUCTOR: Describe el constructor.
    • CAMPO: campo de descripción
    • LOCAL_VARIABLE: describe variables locales
    • MÉTODO: método de descripción
    • PAQUETE: paquete descriptivo
    • PARÁMETRO: parámetro de descripción
    • TIPO: Describa la clase, interfaz o declaración de enumeración
  • Documentado: se usa para especificar que la clase de anotación modificada por la meta anotación será extraída en un documento por la herramienta javadoc. De manera predeterminada, javadovc no incluye anotaciones
    • Las anotaciones que definen documentado deben establecer el valor de retención en RUNTIME
  • Hereditaria: se modificó anotación habrá heredado , si una clase se @Inherited modificar mediante la anotación, entonces tendrá automáticamente el comentario subclase
    • Menos aplicación

Supongo que te gusta

Origin www.cnblogs.com/yfyyy/p/12736011.html
Recomendado
Clasificación