Este artículo presenta la bendición del elegante Lombok codificado de Springboot, y la comparte con usted, como sigue:
Descripción general
Lombok ayuda a simplificar la eliminación de algún código Java que debe tener pero parece hinchado al proporcionar anotaciones de sintaxis simples. Por lo general, la simplificación de los objetos POJO (como la generación automática de setters y getters para nosotros, etc.), con el apoyo de Lombok, los desarrolladores pueden evitar muchas operaciones repetitivas e hinchadas, mejorando en gran medida la relación señal / ruido de código Java, ¡por lo que debemos intentar aplicarlo!
Configuración en la idea de IntelliJ
Método 1: Configurar directamente en la interfaz de idea
Primero ingrese la interfaz de los complementos:
Luego busque e instale el complemento Lombok:
Finalmente, no olvide habilitar la opción de habilitación de los procesadores de anotación:
Después de completar la instalación anterior, ¡debe reiniciarse la idea para entrar en vigencia!
Método 2: Descargue manualmente la instalación del complemento Lombok
A veces, debido a las razones de red, el método anterior no se instala, por lo que solo puede descargarlo e instalarlo solo.
Descargue el complemento Lombok:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
Plugins -> Instalar complemento desde el disco ... Seleccione la instalación del paquete zip descargado
Solo reinicie la idea
Después de completar la configuración en el IDE, debe agregar la siguiente dependencia de Lombok en pom.xml para usarla
<Spendency> <ProupId> org.projectlombok </proupid> <artifactid> lombok </artifactid> <versión> 1.16.16 </versión> </pendency>
Notas principales de Lombok
@Getter and @Setter / proporcionan automáticamente métodos establecidos y obtenidos para propiedades@ToString / La función de esta anotación es generar automáticamente el método toString () para la clase@EqualsAndHashCode / Genere automáticamente hashcode e iguala implementaciones para campos de objetos@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / Como el nombre lo indica, genera automáticamente constructores con los parámetros correspondientes para la clase@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / agregue automáticamente el soporte de registro correspondiente a la clase@Data / Agregar automáticamente @ToString, @equalsandhashcode, @getter, add @setter y @requiredargsconstructor a campos no final, que es esencialmente equivalente al efecto integral de varias anotaciones.@NonNull / automáticamente nos ayuda a evitar punteros nulos. Anotaciones que actúan sobre los parámetros del método se utilizan para generar automáticamente las verificaciones de parámetros nulos@Cleanup / Llame automáticamente al método Close () para nosotros. Actúa sobre variables locales. Cuando termina el alcance, el método de cierre se llamará automáticamente para liberar recursos. ¡Aquí hay una batalla de código práctico con anotaciones @Data y @Log que se usan con mayor frecuencia en Lombok!
Uso de anotaciones de @data
La explicación del sitio web oficial sobre la anotación @data es la siguiente:
Todos juntos ahora: un atajo para @ToString, @equalsandhashcode, @getter en todos los campos, @setter en todos los campos no final, y @RquiredarGSconstructor.
No es difícil de entender, puede considerarse como una integración de múltiples anotaciones de Lombok, ¡por lo que es muy conveniente de usar!
Primero, cree una entidad POJO UserLombok. El método de escritura general es el siguiente:
clase pública userlombok {nombre de cadena final privada; edad privada int; puntaje doble privado; etiquetas de cadena privada []; Public UserLombok (nombre de cadena) {this.name = name; } public String getName () {return this.name; } void setAge (int a age) {this.age = edad; } public int getAge () {return this.age; } public void setScore (doble puntaje) {this.score = stork; } public Double GetScore () {return this.score; } public String [] gettags () {return this.tags; } public void settags (string [] etiquetas) {this.tags = etiquetas; } @Override public string toString () {return "dataExample (" + this.getName () + "," + this.getage () + "," this.getScore () + "," + matrizs.deeptostring (this.gettags () + ")"; } protegido booleano canequal (objeto otro) {return Other instanceOf dataExample; } @Override public boolean iguales (objeto o) {if (o ==) return true; if (! (o instancia de dataxample)) devuelve falso; DataExample otro = (DataSePample) o; if (! O.canequal ((objeto) this)) return false; if (this.getName () == NULL? OTRO.GETNAME ()! = NULL:! this.getName (). Equals (Other.getName ())) return false; if (this.getage ()! = Other.getage ()) return false; if (double.compare (this.getScore (), otro.getscore ())! = 0) return false; if (! arrays.eepequals (this.gettags (), otros.gettags ())) return false; devolver verdadero; } @Override public int hashcode () {final int prime = 59; int resultado = 1; Temp1 final largo = double.Doubletolongbits (this.getScore ()); resultado = (resultado*prime) + (this.getName () == NULL? 43: this.getName (). HashCode ()); resultado = (resultado*prime) + this.getage (); resultado = (resultado*prime) + (int) (temp1 ^ (temp1 >>> 32)); resultado = (resultado*prime) + arrays.dephashcode (this.gettags ()); resultado de retorno; }}Después de la bendición de Lombok, el método de escritura se puede simplificar a:
@DATAPublic de clase UserLombok {Nombre de cadena final privada; edad privada int; puntaje doble privado; cadena privada [] etiquetas;}Cuando se usa en Idea, las anotaciones de Lombok se completarán automáticamente, como se muestra en la siguiente figura:
Escribamos el código de prueba de POJO
public static void main (string [] args) {userlombok userlombok = new UserLombok ("Hansonwang99"); userlombok.setage (18); String [] array = new String [] {"Apple", "Juice"}; userlombok.settags (matriz); userlombok.setscore (99.0); System.out.println (UserLombok); }De la figura a continuación, podemos ver que esa idea aún puede completar automáticamente el código generado automáticamente por Lombok para nosotros:
Resultados imprimir
Dado que Lombok genera automáticamente el método ToString para nosotros, el resultado de impresión del objeto es el siguiente:
UserLombok (name = Hansonwang99, edad = 18, puntaje = 99.0, etiquetas = [Apple, jugo])
@Log Annotation Practice
En mi artículo, la práctica del marco de registro de arranque de Spring, usamos LOG4J2 como objeto de registro, que se escribe de la siguiente manera:
@RestController@requestmapping ("/testLogging") public class LoggingTestController {private final logger logger = logManager.getLogger (this.getClass ()); @GetMapping ("/Hello") public String Hello () {for (int i = 0; i <10_0000; i ++) {logger.info ("Info Execute Index Method"); logger.warn ("Warn Execute Index Method"); logger.error ("Error ejecutar el método de índice"); } devolver "mi primera aplicación SpringBoot"; }}Si usa Lombok, el método de escritura se vuelve más conciso. Solo necesitamos introducir la anotación de @log correspondiente para completar la generación del objeto de registro:
@RestController@requestMapping ("/testLoggingWithLombok")@log4j2public class loggingTestControllerlombok {@getmapping ("/hello") public string hello () {for (int i = 0; i <10_0000; i ++) {log.info ("Info ejecutute Index Method"); LOG.Warn ("Método de índice de ejecución advertir"); log.error ("Error Ejecutar el método de índice"); } devolver "mi primera aplicación SpringBoot"; }}¿Qué tal si es todo tan elegante!
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.