Anotaciones comunes y escenarios de aplicación de lombok

introducción a lombok

Lombok es una biblioteca Java que simplifica la escritura de código Java a través de anotaciones. Proporciona una serie de anotaciones que pueden generar automáticamente getters, setters, constructores, equals, hashCode y otros métodos de clase Java, reduciendo así la redundancia del código Java. El objetivo de Lombok es simplificar la escritura de código Java a través de anotaciones, mejorando así la eficiencia del desarrollo y la legibilidad y mantenimiento del código.
Las características principales de Lombok incluyen:
① Simplificar la escritura de código Java: las anotaciones de Lombok pueden generar automáticamente captadores, definidores, constructores, iguales, hashCode y otros métodos de clase Java, lo que reduce la redundancia del código Java.
② Mejorar la legibilidad y la capacidad de mantenimiento del código: las anotaciones de Lombok pueden mejorar la legibilidad y la capacidad de mantenimiento del código, haciéndolo más claro y fácil de entender.
③ Admite varios proyectos Java: Lombok es adecuado para varios proyectos Java, especialmente proyectos a gran escala y proyectos que requieren la creación frecuente de objetos Java.
④ Facilidad de uso: las anotaciones de Lombok son muy fáciles de usar, simplemente agregue las anotaciones correspondientes a la clase de Java.


Notas comunes


Anotaciones @Getter y @Setter

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos escribir métodos getter y setter para las propiedades de las clases de Java para acceder y modificar el valor de las propiedades en otros lugares. Por ejemplo, un objeto de usuario tiene tres propiedades de id, nombre y edad, necesitamos escribir métodos getter y setter para estas tres propiedades. En este momento, puede usar las anotaciones @Getter y @Setter para generar automáticamente métodos getter y setter para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Esperamos generar automáticamente métodos getter y setter para estas tres propiedades para reducir la redundancia del código Java. En este momento, puede usar las anotaciones @Getter y @Setter para generar automáticamente métodos getter y setter.
El código de ejemplo es el siguiente:

public class User {
    @Getter @Setter
    private Long id;
    @Getter @Setter
    private String name;
    @Getter @Setter
    private Integer age;
}

En el código anterior, usamos las anotaciones @Getter y @Setter para generar automáticamente métodos getter y setter para las propiedades id, name y age. De esta forma, podemos acceder y modificar los valores de estas tres propiedades en cualquier otro lugar sin tener que escribir métodos getter y setter redundantes.


anotación @ToString

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos generar el contenido del objeto Java durante la depuración para ver los valores de propiedad del objeto. Por ejemplo, un objeto de usuario tiene tres propiedades de id, nombre y edad, necesitamos escribir el método toString para estas tres propiedades. En este momento, puede usar la anotación @ToString para generar automáticamente el método toString para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Esperamos generar automáticamente el método toString de esta clase, que es conveniente para generar el contenido del objeto durante la depuración. En este momento, puede usar la anotación @ToString para generar automáticamente el método toString.
El código de ejemplo es el siguiente:

@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
}

En el código anterior, usamos la anotación @ToString para generar automáticamente el método toString de la clase Usuario. De esta manera, podemos generar convenientemente el contenido del objeto Usuario durante la depuración sin escribir métodos redundantes en toString.
Por ejemplo, si hay un objeto Usuario cuyo atributo de identificación es 1, el atributo de nombre es "Zhang San" y el atributo de edad es 18, entonces el contenido de este objeto se puede generar de la siguiente manera:

User user = new User();
user.setId(1L);
user.setName("张三");
user.setAge(18);
System.out.println(user);

La salida es la siguiente:

User(id=1, name=张三, age=18)

Anotación @EqualsAndHashCode

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos comparar los contenidos de los objetos de Java para determinar si son iguales. Por ejemplo, un objeto de usuario tiene tres atributos de id, nombre y edad, necesitamos escribir métodos equals y hashCode para estos tres atributos. En este momento, puede usar la anotación @EqualsAndHashCode para generar automáticamente métodos equals y hashCode para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Queremos generar automáticamente los métodos equals y hashCode de esta clase para facilitar la comparación del contenido de los objetos. En este momento, puede usar la anotación @EqualsAndHashCode para generar automáticamente métodos equals y hashCode.
El código de ejemplo es el siguiente:

@EqualsAndHashCode
public class User {
    private Long id;
    private String name;
    private Integer age;
}

En el código anterior, usamos la anotación @EqualsAndHashCode para generar automáticamente los métodos equals y hashCode de la clase User. De esta forma, podemos comparar fácilmente el contenido de los objetos User sin escribir métodos redundantes de equals y hashCode.
Por ejemplo, si hay dos objetos Usuario cuyo atributo de identificación es 1, el atributo de nombre es "Zhang San" y el atributo de edad es 18, entonces el contenido de los dos objetos se puede comparar de la siguiente manera:

User user1 = new User();
user1.setId(1L);
user1.setName("张三");
user1.setAge(18);

User user2 = new User();
user2.setId(1L);
user2.setName("张三");
user2.setAge(18);

boolean result = user1.equals(user2);
System.out.println(result);

El resultado es verdadero, lo que indica que el contenido de los dos objetos es el mismo.


Anotaciones @NoArgsConstructor y @AllArgsConstructor

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos crear objetos Java e inicializar los valores de propiedad de los objetos. Por ejemplo, un objeto de usuario tiene tres atributos: id, nombre y edad, y necesitamos escribir constructores para estos tres atributos. En este momento, puede usar las anotaciones @NoArgsConstructor y @AllArgsConstructor para generar automáticamente constructores para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Esperamos generar automáticamente el constructor sin argumentos y el constructor de argumentos completos de esta clase para facilitar la creación de objetos e inicializar los valores de propiedad. En este momento, puede usar las anotaciones @NoArgsConstructor y @AllArgsConstructor para generar constructores automáticamente.
El código de ejemplo es el siguiente:

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
}

En el código anterior, usamos las anotaciones @NoArgsConstructor y @AllArgsConstructor para generar automáticamente el constructor sin argumentos y el constructor con argumentos completos de la clase Usuario. De esta forma, podemos crear fácilmente el objeto Usuario e inicializar los valores de propiedad del objeto sin escribir constructores redundantes.
Por ejemplo, si desea crear un objeto Usuario con ID 1, nombre "Zhang San" y 18 años, puede crear el objeto de la siguiente manera:

User user = new User(1L, "张三", 18);

@Anotación de datos

La anotación @Data combina todas las funciones de anotación de @Getter, @Setter, @ToString, @EqualsAndHashCode, @NoArgsConstructor, @AllArgsConstructor anteriores.


Anotación @Builder

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos crear objetos Java e inicializar los valores de propiedad de los objetos. Por ejemplo, un objeto de usuario tiene tres propiedades de id, nombre y edad, necesitamos escribir métodos setter para estas tres propiedades. En este momento, puede usar la anotación @Builder para generar automáticamente el método de construcción para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Queremos generar automáticamente el método constructor de esta clase, que es conveniente para crear objetos e inicializar los valores de las propiedades. En este momento, puede usar la anotación @Builder para generar automáticamente el método de construcción.
El código de ejemplo es el siguiente:

import lombok.Builder;

@Builder
public class User {
    private Long id;
    private String name;
    private Integer age;
}

En el código anterior, usamos la anotación @Builder para generar automáticamente el método de construcción de la clase User. De esta forma, podemos crear fácilmente un objeto Usuario e inicializar los valores de propiedad del objeto sin escribir métodos setter redundantes.
Por ejemplo, si desea crear un objeto Usuario con ID 1, nombre "Zhang San" y 18 años, puede crear el objeto de la siguiente manera:

User user = User.builder()
                .id(1L)
                .name("张三")
                .age(18)
                .build();
      

@Slf4j anotación

Escenario de aplicación:

En el desarrollo real, a menudo necesitamos registrar el registro de ejecución del programa Java para solucionar problemas cuando se produce un error. Por ejemplo, un objeto de usuario tiene tres atributos: id, nombre y edad.Necesitamos registrar los registros de creación y modificación del objeto de usuario en el programa. En este momento, puede usar la anotación @Slf4j para generar automáticamente un registrador para reducir la redundancia del código Java.

Por ejemplo:

Supongamos que hay un usuario de clase Java, que tiene tres atributos: id, nombre y edad. Esperamos registrar los registros de creación y modificación de objetos de usuario en el programa para facilitar la resolución de problemas. En este momento, puede usar la anotación @Slf4j para generar automáticamente un registrador.
El código de ejemplo es el siguiente:

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class User {
    private Long id;
    private String name;
    private Integer age;
    
    public User(Long id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
        log.info("创建用户对象:{}", this);
    }
    
    public void setName(String name) {
        this.name = name;
        log.info("修改用户对象:{}", this);
    }
}

En el código anterior, usamos la anotación @Slf4j para generar automáticamente un registrador para la clase Usuario. De esta forma, podemos registrar los registros de creación y modificación de objetos de usuario en el programa, lo cual es conveniente para la resolución de problemas.
Por ejemplo, si desea crear un objeto Usuario con ID 1, nombre "Zhang San" y 18 años, puede crear el objeto de la siguiente manera:

User user = new User(1L, "张三", 18);

Si desea modificar el atributo de nombre de este objeto, puede modificar el valor del atributo de las siguientes maneras:

user.setName("李四");

Supongo que te gusta

Origin blog.csdn.net/m0_37742400/article/details/130521940
Recomendado
Clasificación