Spring : la validation simplifiée avec Spring. Démos pratiques.

Ce post a pour objectif de vous faire découvrir les nouveautés de Spring bean validation capable dorénavant de supporter les  JSR 303 & 349. En exemple, nous verrons comment réaliser des tests unitaires et des tests d'intégration (où le validator est injecté par spring) et nous rédigerons des tests d'intégration dans lesquels nous abuserons des nouvelles annotations de spring-boot. A titre d'exemple, nous verrons également comment employer les annotations @RunWith(SpringRunner.class) et @SpringBootTest.

Spring-Batch (Part II): Validation and Skip Policy. Ou comment gérer les données non valides dans un batch?

Après la première partie sur les tests unitaires du reader de Spring-Batch, nous passons à la validation des données input.
Ce second volet exige un minimum de connaissances sur spring & spring-batch.

Nous tentons de relever plusieurs défis majeurs correspondants aux attentes en production:

  • identifier avec précision le numéro de la ligne invalide (non traitée par le batch lancé la veille),
  • générer un rapport exploitable du déroulement du batch (exécutée la nuit),
  • porter en base les erreurs rencontrées en traçant correctement leurs causes exactes,

Nous nous posons la question de la validation des lignes lues par le Reader et aussi comment définir une politique d'éviction (skip) de ces lignes non valides.

En franglais, c'est la question validate & skip policy dans les batchs.

Ce sont deux notions bien distinctes mais fort bien liées.

SpringMVC et la JSR303 (validation)

Suite au billet SpringMVC pour les nuls, nous poursuivons avec l'ajout de la validation à base de la JSR303.

La JSR303 ou Bean Validation offre une API standard qui permet de valider un objet Java et de générer la liste des violations des contraintes non observées.

La gestion de la validation est indépendante de la nature de l'application.

Mais ici la démonstration est produite dans le cadre d'une application web avec SpringMVC.

En effet, dans cette démo, on configure Spring, on ajoute quelques annotations sur les propriétés (les champs), une annotation sur l'objet dans le controller et c'est tout.

Plus précisément, en cinq actes nous allons mettre en place la validation dans notre application web sans écrire du code.

Il est préférable de partir du projet de la seconde partie du billet déjà mentionné.

Il faudrait donc le compléter en suivant les cinq actes ci-après.