[Notas de Java] Comprensión de anotaciones y ejemplos comunes de anotaciones

Uno: comprensión de las anotaciones:

Resumen de anotaciones

En JavaSE, el propósito de usar anotaciones es relativamente simple, como marcar funciones obsoletas, ignorar advertencias, etc. Las anotaciones juegan un papel más importante en JavaEE/Android, por ejemplo, para configurar cualquier aspecto de la aplicación, reemplazando el código engorroso y la configuración XML que quedaba en la versión anterior de JavaEE.

El modelo de desarrollo futuro se basa en anotaciones. JPA se basa en anotaciones. Spring 2.5 y superior se basan en anotaciones. Hibernate 3.x y posteriores también se basan en anotaciones. Ahora, parte de Struts2 también se basa en anotaciones. Las anotaciones son una tendencia. , en cierta medida, se puede decir: marco = anotación + reflexión + patrón de diseño.

Dos: ejemplos de anotaciones comunes

Cuando use Anotación, agregue el símbolo @ delante y use la Anotación como modificador . Se utiliza para decorar los elementos del programa que soporta.

Ejemplo 1: generar anotaciones relacionadas con la documentación

@author indica el autor que desarrolló este tipo de módulo, usado entre varios autores, dividido

@version indica la versión de este tipo de módulo

@see se refiere al turno, es decir, al tema relacionado

@since desde qué versión se agregó

@param La descripción de un parámetro en el método, si no hay parámetro, no se puede escribir

@return Descripción del valor de retorno del método, si el tipo de valor de retorno del método es nulo, no se puede escribir

@exception explica las excepciones que puede lanzar el método. Si el método no lanza explícitamente excepciones con throws, no se puede escribir

en

   Las tres etiquetas @param @return y @exception solo se usan para métodos.

   Requisitos de formato de @param: @param nombre del parámetro tipo de parámetro descripción del parámetro

   Requisitos de formato para @return: @return tipo de valor devuelto descripción del valor devuelto

   Requisitos de formato de @exception: @exception tipo de excepción descripción de excepción

   @param y @exception pueden ser múltiples en paralelo

Por ejemplo:

package com.annotation.javadoc;
/**
* @author shkstart
* @version 1.0
* @see Math.java
*/
public class JavadocTest {
/**
* 程序的主方法,程序的入口
* @param args String[] 命令行参数
*/
public static void main(String[] args) {
}

/**
* 求圆面积的方法
* @param radius double 半径值
* @return double 圆的面积
*/
public static double getArea(double radius){
return Math.PI * radius * radius;
}
}

Ejemplo 2: Comprobación de formato en tiempo de compilación (tres anotaciones básicas integradas en JDK)

@Override : anulación restringida del método de la clase principal, esta anotación solo se puede usar para métodos

@Deprecated: Se usa para indicar que el elemento modificado (clase, método, etc.) está obsoleto. Generalmente porque la estructura modificada es peligrosa o existen mejores alternativas

@SuppressWarnings : suprime las advertencias del compilador

Ejemplo:

package com.annotation.javadoc;
public class AnnotationTest{
    public static void main(String[] args) {
        @SuppressWarnings("unused")
        int a = 10;
    }
    
    @Deprecated
    public void print(){
        System.out.println("过时的方法");

    }
    
    @Override
    public String toString() {

        return "重写的toString方法()";

    }
}

Ejemplo tres: seguimiento de las dependencias del código e implementación de funciones alternativas del archivo de configuración

Servlet3.0 proporciona anotaciones, lo que hace que ya no sea necesario implementar Servlets en el archivo web.xml.

Ejemplo:

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException { }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        doGet(request, response);
    } }
<servlet>

<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

Gestión de "transacciones" en el marco de primavera

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

    public void buyBook(String username, String isbn) {
        //1.查询书的单价
        int price = bookShopDao.findBookPriceByIsbn(isbn);

        //2. 更新库存
        bookShopDao.updateBookStock(isbn);

        //3. 更新用户的余额
        bookShopDao.updateUserAccount(username, price);
    }
<!-- 配置事务属性 -->

<tx:advice transaction-manager="dataSourceTransactionManager" id="txAdvice">
<tx:attributes>
<!-- 配置每个方法使用的事务属性 -->
<tx:method name="buyBook" propagation="REQUIRES_NEW"
isolation="READ_COMMITTED" read-only="false" timeout="3" />
</tx:attributes>
</tx:advice>

¡gracias por ver! ! !

Supongo que te gusta

Origin blog.csdn.net/qq_64976935/article/details/129561951
Recomendado
Clasificación