Bean Validation (Jakarta Validation) — Validation des données en Java

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Bean Validation ?

Bean Validation (spécification Jakarta Bean Validation, anciennement JSR 380) est un framework standard pour la validation des données dans les applications Java. Il permet de décrire de manière déclarative les règles de vérification des champs, méthodes et classes à l'aide d'annotations. L'implémentation la plus populaire est Hibernate Validator.

Pourquoi la validation est-elle nécessaire ?

Dans toute application manipulant des saisies utilisateur, il est nécessaire de vérifier les données : une chaîne n'est-elle pas vide, un nombre est-il dans une plage, un email est-il correct. La vérification manuelle avec des if-else rend le code volumineux et difficile à maintenir. Bean Validation résout ce problème en externalisant la logique de validation dans des annotations et en assurant un traitement uniforme des erreurs.

Comment installer

Si vous utilisez Maven, ajoutez dans pom.xml :

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

Pour Gradle :

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

Dans Spring Boot, la validation est déjà préinstallée.

Fonctionnalités principales

  • Annotations standards : @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @NotBlank et autres.
  • Groupes de validation : permettent d'appliquer différentes règles selon le contexte (par exemple, création vs mise à jour).
  • Validateurs personnalisés : vous pouvez créer votre propre annotation et écrire la logique de validation.
  • Validation des paramètres de méthode : vérification des arguments et des valeurs de retour.

Exemple de code en Java

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

public class User { @NotBlank(message = "Le nom ne peut pas être vide") private String name;

@Email(message = "Email invalide") private String email;

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

// getters et setters}

// UtilisationValidatorFactory 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());}

Quand l'utiliser

Bean Validation est utilisé dans les API REST (Spring Boot, Jakarta EE), les formulaires web, les objets DTO, ainsi que lors du travail avec des bases de données. Il est indispensable si vous souhaitez garantir l'intégrité des données au niveau du code Java avant leur enregistrement. Il est recommandé pour tous les projets où il y a des saisies utilisateur ou une intégration avec des systèmes externes.

Recommendations