7-modul · 9-dars: Bean Validation

Daraja: Ilg'or

Bean Validation. Jakarta EE bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Bean Validation tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Jakarta Bean Validation obyekt qiymatlariga deklarativ cheklov qo'yadi. NotNull faqat nullni, NotBlank null va whitespace matnni, Size esa uzunlik yoki element sonini tekshiradi. Min, Max va Pattern boshqa qoidalarni ifodalaydi. Validatsiya ma'lumot bazasidagi UNIQUE yoki FOREIGN KEY o'rnini bosmaydi: parallel so'rovlar DB constraint bilan himoyalanadi. ValidatorFactory provider konfiguratsiyasini tayyorlaydi, Validator esa obyektni tekshirib ConstraintViolationlar to'plamini qaytaradi. Ichki obyektlar uchun @Valid bilan kaskad validatsiya talab qilinadi. Spring MVCda request DTO ustidagi @Valid kiruvchi qiymatlarni controller ishidan oldin tekshirishga yordam beradi; biznesga bog'liq tekshiruv servisda qoladi. Custom constraint annotation, ConstraintValidator implementationi va message bilan quriladi. Validator ichidagi null siyosatini aniq belgilang; nullni odatda alohida NotNullga qoldirish qulay. Xato javobida field nomi va tushunarli xabar bering, parol yoki tokenning rejected value qiymatini qaytarmang.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/7-module%28Jakarta%20EE%29.md) [Rasmiy qo‘llanma](https://jakarta.ee/specifications/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

record CreateNote(
  @jakarta.validation.constraints.NotBlank
  @jakarta.validation.constraints.Size(max = 120) String title) {}
// Controllerda: create(@Valid @RequestBody CreateNote request)

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-07, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)