@Builder izohi Lombok kutubxonasidagi xususiyat boʻlib, u Java sinflarida boilerplate kodini kamaytiradi. U odatda Spring Boot dasturlarida sinflar uchun quruvchi usullarini yaratish uchun ishlatiladi. Ushbu blog postida biz @Builder izohini, uning xususiyatlari va Spring Boot dasturida qanday foydalanishni muhokama qilamiz.

@Builder Izohning xususiyatlari

  • Obyekt yaratishni soddalashtiradi: @Builder izohi ravon interfeysni taʼminlash orqali obyekt yaratishni soddalashtiruvchi quruvchi sinfini yaratadi. Bu yangi ob'ektlarni yaratish uchun zarur bo'lgan kod miqdorini kamaytiradi.
  • O'zgarmas ob'ektlarni rag'batlantiradi: Yaratilgan quruvchi sinf o'zgarmas ob'ektlardan foydalanishni rag'batlantiradi. Sinf o'zgarmas ob'ektni qaytaruvchi build() usulini yaratadi va bu asl ob'ektga o'zgartirishlar kiritilishiga yo'l qo'ymaydi.
  • Birlamchi qiymatlarni qo‘llab-quvvatlaydi: @Builder izohi maydonlar uchun standart qiymatlarni qo‘llab-quvvatlaydi. Bu ishlab chiquvchilarga ob'ektni ishga tushirish uchun zarur bo'lgan kod miqdorini kamaytiradigan maydonlar uchun standart qiymatlarni aniqlash imkonini beradi.
  • O'qishni yaxshilaydi: Yaratilgan quruvchi sinf tomonidan taqdim etilgan ravon interfeys kodning o'qilishini yaxshilaydi, uni tushunish va saqlashni osonlashtiradi.

Spring Boot-da @Builder-dan foydalanish
Spring Boot-da @Builder-dan foydalanish uchun avvalo loyihangizga Lombok bog'liqligini qo'shishingiz kerak. Buni build.gradle faylingizga quyidagi bog'liqlikni qo'shish orqali qilishingiz mumkin:

dependencies {
    implementation 'org.projectlombok:lombok:1.18.20'
}

Lombok bog'liqligini qo'shgandan so'ng, Spring Boot darslarida @Builder izohidan foydalanishingiz mumkin. Mana @Builder izohidan foydalanadigan Spring Boot sinfiga misol:

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class Person {
    private String name;
    private int age;
    private String address;
}

// Usage in code
Person person = Person.builder()
                    .name("John")
                    .age(30)
                    .address("123 Main Street")
                    .build();

Yuqoridagi misolda @Builder izohi Person sinfi uchun quruvchi sinfini yaratadi, u yangi Person obyektini yaratish uchun ishlatiladi. Quruvchi klassi ravon interfeysni ta'minlaydi, bu esa Person ob'ektining qiymatlarini o'rnatishni osonlashtiradi.

Xulosa
Spring Boot-dagi @Builder izohi obyekt yaratishni soddalashtiradi va kodni o‘qishni yaxshilaydi. U ob'ekt qiymatlarini o'rnatish uchun ravon interfeysni ta'minlovchi quruvchi sinfini yaratadi, ob'ektni yaratish uchun zarur bo'lgan kod miqdorini kamaytiradi va o'zgarmas ob'ektlardan foydalanishni rag'batlantiradi. Ko'p funksiyalari bilan @Builder izohi ishlab chiquvchilar uchun Spring Boot ilovalarida foydalanish uchun kuchli vositadir.