Project : Lombok

Project Lombok Nedir ?

Java projelerinde standart olarak yazılması gereken kod parçacıkları vardır. ( getter, setter, constructor, toString, equal, hashcode vb.) Java dilinin en sık dile getirilen eleştirilerinden biri, çoğu projede bulunan bu tür kodların hacmidir. Kullandığımız IDE’ler sayesinde hızlıca getter-setterları, toString vs. metotlarını oluşturabiliyoruz. Peki ya okunabilirlik ?

Project Lombok, gereksiz satır sayısı fazlalığından kurtarmak, okunabilirliği arttırmak ve daha temiz kod vaatleriyle ortaya çıkmıştır. Pragmatik geliştirici için güçlü bir araçtır. Java sınıflarınızdaki bol miktarda standart kodu ortadan kaldırmak için bir dizi faydalı anotasyon sunar. En iyi durumlarda, yüzlerce satırlık kodun yerini sadece beş satır alabilir.

Project Lombok, Java sınıfları için genel olarak yazılan standart kodların miktarını azaltmak için kullanılabilecek küçük bir kütüphanedir.

Kurulumu

Projemizde Lombok kullanmak için pom.xml’e bağımlılığı tanımlamamız gerekmektedir.

En güncel sürümü buradan kontrol edebilirsiniz.

Ayrıca kullandığınız IDE’ye de Lombok plugin’i yüklemek gerekmektedir.

 

Lombok Anotasyonları

 

@Getter ve @Setter

Kapsülleme(Encapsulation) konumuzda da bahsetmiştik bir sınıfın kapsülledikten sonra dış dünyaya getter setterlar ile açarız. Lombok bunları aynı ismi taşıyan anotasyonlarla kendisi yapmaktadır. Bunun iki yolu vardır; ya sınıf seviyesinde tüm alanların ya da alan seviyesinde tek tek kendiniz erişim seviyesini belirtip getter setterları oluşturabilirsiniz.

 

@NonNull

Alanlarımız üzerinde null kontrolü yapmaktadır ve eğer null setleniyor ise NullPointerException fırlatılmasını sağlıyor.

 

@ToString

ToString anotasyonu, sınıf seviyesinde toString metodunu oluşturmaktadır. Hangi alanları içermesi gerektiği, hangi alanların kullanmayacağını parametre olarak geçebiliyorsunuz.

 

@EqualsAndHashCode

Bu anotasyon, sınıf seviyesinde hem equals() hem de hashCode() metotlarını oluşturmaktadır. ToString anotasyonunda olduğu gibi parametrelerle sınıf alanlarını dahil veya hariç yapabilirsiniz.

 

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

Bu anotasyonlar, yapılandırıcıları(Constructor) oluşturmadır. NoArgs ile parametresiz, requiredArgs ile @NonNull anotasyonu ile işaretlediğiniz alanlara göre, AllArgs ise tüm alanlar ile constructor oluşturur.

@Data

Bu anotasyonumuz ise Lombok içerisinde en çok kullanılan anotasyondur. @ToString, @EqualsAndHashCode, @Getter ve @Setter işlevlerini birleştirir. POJO sınıflarının bolca kullandığı anotasyondur.

Öncesi

Sonrası

 

@Builder

Eğer Builder tasarım şablonunu kullanmak istiyorsanız sadece bu anotasyonu sınıf seviyesinde koymanız yeterlidir. Builder tasarım şablonunu daha iyi anlamak için buradan yazımı okuyabilirsiniz.

 

@Slf4j @Log @CommonsLog @Log4j @Log4j2 @XSlf4j

Projenizde kullandığınız loglama mekanızmasına göre ilgili anotasyon ile sınıflarınızı işaretleyebilirsiniz. Bu sayede her sınıf içerisinde logger nesnesi oluşturmaya gerek olmayacaktır.

Bunun gibi daha bir çok anotasyon bulunmaktadır. https://projectlombok.org/features/ adresinden anotasyonları inceleyebilirsiniz.

Lombok’u uygulamalarınızdan birine eklemeyi deneyin ve  kod satırlarının ne kadar azaldığını görün.

Kaynaklar

Beğenebileceğiniz Diğer Yazılar

3 Yorum

  1. Elif dedi ki:

    Çok faydalı bir yazı olmuş, teşekkürler.

  1. 20 Ekim 2018

    […] Project : Lombok Views: 529 […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir