🚀 4.3 Produtividade Extrema com Lombok

Como vimos no capítulo anterior, nossas classes de domínio são extremamente limpas. O responsável por essa “mágica” é o Project Lombok, uma biblioteca que se tornou padrão na Engenharia de Elite para eliminar o ruído visual e o código repetitivo (boilerplate).

O Problema do Boilerplate

Em uma classe Java tradicional, para cada atributo, precisaríamos de:

  • Getters e Setters.
  • equals() e hashCode().
  • toString().
  • Construtores (Vazio e com todos os argumentos).

Isso resultaria em centenas de linhas de código que não agregam valor ao negócio e dificultam a manutenção.

O Arsenal Lombok no Green Dog

Utilizamos as seguintes anotações poderosas em nossas entidades:

  1. @Data: Um atalho que combina @Getter, @Setter, @ToString, @EqualsAndHashCode e @RequiredArgsConstructor.
  2. @Builder: Implementa o padrão de projeto Builder, permitindo criar objetos de forma fluida:
    Cliente c = Cliente.builder().nome("Rodrigo").endereco("Sampa").build();
3.  **`@NoArgsConstructor` / `@AllArgsConstructor`**: Essenciais para que o **Hibernate 6** e outras frameworks de reflexão consigam instanciar nossas classes corretamente.

```text
graph LR
    subgraph java_tradicional [Java Tradicional]
        A[Atributos] --> B[Getters/Setters]
        B --> C[Equals/HashCode]
        C --> D[ToString]
    end
    subgraph lombok_premium [Lombok Premium]
        E[Atributos] --> F("@Data + @Builder")
    end

TIP

O Lombok funciona durante o tempo de compilação. Ele injeta o bytecode necessário diretamente no arquivo .class, mantendo seu arquivo .java minimalista e focado na arquitetura.

Com nossas entidades leves e poderosas, estamos prontos para criar a camada de persistência.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️