Bean Validation (Jakarta Validation) — التحقق من البيانات في Java

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة
```html

ما هو Bean Validation؟

Bean Validation (مواصفات Jakarta Bean Validation، سابقًا JSR 380) هو إطار عمل قياسي للتحقق من صحة البيانات في تطبيقات Java. يسمح بوصف قواعد التحقق من الحقول والطرق والفئات بشكل تصريحي باستخدام التعليقات التوضيحية. التنفيذ الأكثر شيوعًا هو Hibernate Validator.

لماذا نحتاج إلى التحقق من الصحة؟

في أي تطبيق يتعامل مع إدخال المستخدم، من الضروري التحقق من البيانات: هل السلسلة فارغة، هل يقع الرقم ضمن نطاق معين، هل البريد الإلكتروني صحيح. التحقق اليدوي باستخدام if-else يجعل الكود ضخمًا ويصعب صيانته. يحل Bean Validation هذه المشكلة عن طريق نقل منطق التحقق إلى التعليقات التوضيحية وتوفير معالجة موحدة للأخطاء.

كيفية التثبيت

إذا كنت تستخدم Maven، أضف إلى pom.xml:

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>8.0.1.Final</version></dependency>

لـ Gradle:

implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final'

في Spring Boot، التحقق من الصحة مثبت مسبقًا.

الوظائف الأساسية

  • التعليقات التوضيحية القياسية: @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @NotBlank وغيرها.
  • مجموعات التحقق: تسمح بتطبيق قواعد مختلفة حسب السياق (مثل الإنشاء مقابل التحديث).
  • المدققون المخصصون: يمكنك إنشاء تعليق توضيحي خاص بك وكتابة منطق التحقق.
  • التحقق من معلمات الطرق: التحقق من الوسائط والقيم المُعادة.

مثال كود بلغة Java

import jakarta.validation.constraints.*;import jakarta.validation.*;

public class User { @NotBlank(message = "الاسم لا يمكن أن يكون فارغًا") private String name;

@Email(message = "بريد إلكتروني غير صحيح") private String email;

@Min(18) @Max(120) private int age;

// getters and setters}

// الاستخدامValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();

User user = new User();user.setEmail("invalid");

Set<ConstraintViolation<User>> violations = validator.validate(user);for (ConstraintViolation<User> violation : violations) { System.out.println(violation.getMessage());}

متى يتم الاستخدام

يُستخدم Bean Validation في REST API (Spring Boot, Jakarta EE)، ونماذج الويب، وكائنات DTO، وكذلك عند العمل مع قواعد البيانات. لا غنى عنه إذا كنت ترغب في ضمان سلامة البيانات على مستوى كود Java قبل حفظها. يُوصى به لجميع المشاريع التي تحتوي على إدخال مستخدم أو تكامل مع أنظمة خارجية.

```

توصيات