El proyecto Lombok

By Eugenia Pérez | 5 January, 2018

Otro tema del que se está profundizando en el libro de Spring es Lombok…

Lombok es un proyecto que facilita el mantenimiento de los POJOs (Plain Old Java Object). Básicamente consiste en añadir una serie de anotaciones mínimas a la clase para que de manera automática se generen los métodos set/get, constructores, toString, y lo que necesitemos, incluyendo opciones variadas.

La ventaja de Lombok es que desarrollamos POJOs que solamente consisten en clases con atributos y en el editor de código no veremos más que:

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import lombok.Data;

@Entity

@Data

public class Customer {

  @Id

  @GeneratedValue(strategy=GenerationType.AUTO)

  private int id;

  private String name;

  private String address;

}

Lombok se encarga de que se generen los métodos necesarios, y aunque no los veamos ahí el resto de clases son conscientes, en tiempo de compilación, de que esos métodos existen. En un proyecto Maven, de hecho, esos métodos se crean dentro de la carpeta target.

Y de forma transparente, cada vez que se retoca algo en esos atributos, los métodos necesarios se regeneran y el desarrollador no se tiene que molestar.

Cómo configurar Lombok

Para utilizar Lombok se deben hacer dos cosas:

  1. Incluir la librería en el proyecto
  2. Configurar lombok en el entorno de desarrollo

Incluir la librería es relativamente sencillo si se utiliza un gestor de proyectos como Maven o Gradle. En Maven, por ejemplo, basta con añadir esta dependencia:

<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
</dependency>

En cuanto a la configuración, puede variar un poco según el IDE. Para eclipse, debemos descargarnos un JAR de la web de lombok:

https://projectlombok.org/downloads/lombok.jar

Y a continuación ejecutarlo

java -jar lombok.jar

Nos aparecerá un pequeño diálogo donde le debemos indicar el directorio donde se encuentra Eclipse mediante el botón Specify Location y a continuación pulsar Install/Update…

Lombok modificará lo necesario y una vez reiniciado Eclipse ya tendremos soporte para aplicar esta herramienta.

Algunas opciones

Lombok dispone de variadas anotaciones en caso de que tengamos necesidades específicas.

  • @Data: es la anotación básica con la que obtenetemos métodos set/get, toString, un constructor con todos los campos y los métodos equals y hashCode.
  • @Log4j: nos da el acceso a este tipo de loggers.
  • @NoArgsConstructor: genera un constructor sin argumentos, necesario si se ha puesto otro constructor. Los ORM como Hibernate necesitan el constructor vacío.
  • @EqualsAndHashCode: genera los métodos equals y hashCode, permite exluir campos:
  • @EqualsAndHashCode(exclude = {“director”,”cast”})
  • @ToString: genera el método toString y tambien permite excluir campos, ideal para evitar bucles cuando hay dependencias.

La referencia completa se encuentra en:

https://projectlombok.org/features/all

facebooktwittergoogle_plusredditpinterestlinkedinmailby feather