Mengenal Project Lombok di Java Menggunakan Eclipse dan Spring Boot

    Ketika membuat sebuah class pada Java utamanya yang berkaitan dengan Plain Old Java Object (POJO), tidak bisa lepas dari method setter dan getter. Hal ini sangat terasa sangat redundant dan memakan banyak baris code / waktu tanpa ada modifikasi yang berarti atau mungkin bisa dikenal dengan nama boilerplate code. Hal ini mendorong beberapa komunitas pengguna Java untuk mengatasi masalah ini, project ini bernama Project lombok. Pada artikel ini akan mengulas apa itu project lombok, bagaimana penggunaanya menggunakan STS/Eclipse IDE dan pada project Spring boot.

Apa itu Project Lombok

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
    kalimat di atas merupakan deskripsi yang tertulis pada project lombok. Ada poin-poin menarik yaitu project lombok merupakan java library yang terpasang di editor/build tools (IDE), sehingga tidak perlu menulis ulang method "getter" atau yang mirip-mirip dengan sebuah anotasi, automatisasi log variable dan lain sebagainya. Seperti pada pembukaan yang tertulis digunakan untuk mengurangi boilerplate code di program kita. Lombok bekerja pada saat kita melakukan compile source code Java, anotasi yang ada pada Lombok akan membentuk source code yang diinginkan ketika source code di compile. 

Instalilasi di STS/Eclipse

    untuk memudahkan integrasi dengan IDE yang digunakan, project lombok menyediakan pilihan untuk integrasi ke berbagai macam IDE. Pada artikel ini akan digunakan Spring Tool Suite (STS) dan Eclipse. Step secara umum anda bisa lihat pada link berikut https://projectlombok.org/setup/eclipse dan stepsnya adalah sebagai berikut :
  1. Download jar Lombok, silahkan kunjungi link berikut https://projectlombok.org/download.
  2. Double klik .jar yang sudah dibuka, arahkan IDE(s) pada .exe untuk STS / Eclipse. 
    install project lombok

  3. Click install maka akan muncul windows berikut.
    selesai install
  4. Setelah itu click close. Lalu lakukan check dengan cara click Help, lalu pilih About eclipse IDE / About Spring Tool Suite.
    check di eclipse dan STS

Project 
Buka spring initializr, pilih konfigurasi sebagai berikut :
  • Project : Maven
  • Spring Boot : 3.2.5 
  • Dependencies :
    • H2 Database
    • Lombok
    • Spring Web
    • Spring Boot Dev Tools
    • Spring Data JPA
spring init project

    Lalu extract dan tambahkan project ini ke STS / Eclipse. Untuk tutorial lebih lengkap dalam extract dan import project. Silahkan lihat artikel berikut https://www.sufyan97.com/2024/05/spring-boot-hibernate-basic-1-crud.html pada bagian Tutorial maven project.

Fitur

@AllArgsConstrucor dan @NoArgsConstructor

    Sengaja saya tuliskan satu paket antara @AllArgsConstrucor dan @NoArgsConstructor, digunakan untuk membuat otomatis metod constructor all untuk semua variabel dalam class dan no untuk membuat metod constructor kosong. Dua anotasi ini sangat berguna apabila sering mengubah variabel apa saja yang ada dalam class. Sehingga tidak perlu report-report generate / ketik ulang.

@Setter

anotasi ini digunakan untuk membuat method set secara otomatis pada sebuah variabel.
contoh code @setter 
Employee.java versi lombok
Employee.java versi native

Jika diperhatikan pada versi lombok urutan anotationnya adalah @Setter, @AllArgsConstructor, @NoArgsConstructor. Lalu apabila class ini dibentuk .class yang kebentuk akan terbentuk seperti yang di native. dimulai dari setternya terlebih dahulu, kemudian metod  constructor full argumen, lalu lanjut constructor non argumen.

@Getter

anotasi ini digunakan untuk membuat method get secara otomatis pada sebuah variabel.
Account.java versi lombok 
Account.java versi native

@ToString

    Anotasi ini digunakan menggantikan method toString pada sebuah class. Sama seperti halnya @AllArgsConstructor yang otomatis membuat constructor untuk seluruh variabel. Untuk contoh code akan digabungkan dengan @Data.

@NonNull

Anotasi ini digunakan melakukan pengecekan apakah suatu object pada parameter method atau penyusun record null. Jika object tersebut null maka akan melakukan throw. 
User.java versi lombok
User.java versi native

    Anotasi @NonNull pada variabel akan melakukan pengecheckan ketika metod setter dari variabel dipanggil. Apabila sebagai parameter, maka di awal fugsi/metod variabel akan dicheck dulu null atau tidaknya.

@Data

 Anotasi ini gabungan dari @Setter dan @Getter , dibandingkan menulis @Setter dan @Getter  kita bisa langsung menulis @Data. Selain itu @ToString, @EqualandHashCode, dan @RequiredArgsConstructor sudah termasuk ke dalam anotation @Data.
Customer.java versi lombok
Customer.java versi native

Jika dilihat @Data membentuk setter, getter, EqualandHashCode, serta toString. 

Perlakuan pada variabrel dengan access modifier final

Untuk anotasi @Setter, @Data variabel dengan access modifier final tidak akan dibuat methos setnya. 

Posting Komentar untuk "Mengenal Project Lombok di Java Menggunakan Eclipse dan Spring Boot"