Spring Boot Lombok nedir?

Lombok, Java projesi geliştirirken IDE’ye entegre edilebilen bir anotasyon ile kod üretme (code generation) kütüphanesidir. Lombok ile daha temiz ve daha az kod yazmış oluruz.

Java’da proje geliştirirken yaygın olarak yapmamız gereken bazı işlemler bulunmakta. Bunlar projemizin iş tarafına gerçek bir değer getirmez iken kodumuzun çok fazla ayrıntı barındırmasını zorunlu hale getiriyor.

Örnek olarak Bir POJOda (Plain Old Java Object) Sürekli Get-Set, Constructor, toString vb. methodları yazmamız gerekiyor. Birçok sınıfta olması gereken bu methodlar o kadar uzuyor ki sınıfların uzunluğu ve kod karmaşıklığı artıyor, clean code’dan uzaklaşıyoruz. Hatta artık tutoriallarda sıklıkla gördüğümüz bir şey var;

public class Person {

  private long personId;

  private String name;

  // constructor, getters, setters
}

Evet üstteki kodda yorum satırında gördüğünüz üzere bu methodlar uzun uzun yazılmak istenmiyor.

Tam da burada Lombok hayatımıza giriyor. Yazılım geliştirirken kendimizi daha mutlu ve üretken hale getirmek için tercih sebebimiz oluyor.

Şimdi sıklıkla kullanılan Lombok anotasyonlarına ve ne yaptıklarına bir bakalım;

@Getter: Ait olduğu alanın get methodunu oluşturulmuş olur.

@Setter: Aynı şekilde anatosyonu olduğu fieldin setter methodunu oluşturur.

@Data : @Getter + @Setter işlemlerini ve bunun yanında toString ve EqualsAndHashCode methodların yaptığı işlemleri yapar. Sınıfın üstüne eklenen bir anatosyondur. Sınıf içindeki tüm field lerin getter ve setter methodlarını oluşturur. POJO larda ve Modellerde genellikle tercih edilir.

@AllArgsConstructor: Sınıfın Constructorını üretir.Bu Constructor sınıftaki tüm fieldleri parametre olarak almıştır.

@NoArgsConstructor: Parametresiz Constructor üretir.

@NonNull : Bu anatosyan ile null kontrolü yapabiliriz. @NonNull notasyonu null gelen değer için NullPointerException fırlatmaktadır.

Şimdi sıradan bir Java Model örneğine bakalım. Task adında bir Java sınıfım bulunmakta. Bu model içinde 4 field ve ihtiyacım olan methodlar var.

Tüm bunları yaptıktan sonra sınıfın büyüklüğü aşağıda gördüğünüz gibi 67 satıra ulaşmış oluyor. Equals and hashcode methodları eklersem bu daha da artacak. Eğer biz bu sınıfı Lombok kullanarak yazsaydık nasıl olurdu bir bakalım;

Evet, aynı özelliklere sahip sınıfımızdaki kod sayısı 67'den 23 satıra düştü. Bu iki örnekten de görüleceği üzere yeni sınıfımızda okunurluk arttı ve kod karmaşıklığı azaldı. Daha hızlı geliştirme yaptık diyebiliriz.

Aşağıdaki resimde sağ tarafında Structure’a baktığımızda sınıf içindeki methotların Lombok tarafından oluşturulduğunu aytıntılı olarak görebiliriz. Constructor, Getter-Setter Lombok anotasyonları sayesinde oluşturuldu.

Lombok bağımlılığı pom.xml

Last updated

Was this helpful?