Valider ses POJOs en REST avec Bean validation, Spring MVC et JQuery

Cela fait maintenant un bon moment que je n’ai rien écrit sur ce blog, je vais donc profiter de mes vacances pour traiter d’un sujet plutôt récurrent sur les applications Java d’entreprise : la validation de vos beans.

Dans cet article, j’aborderai notamment :

  • Les principes de bean validation, sa mise en place et possibilités dans un contexte Spring MVC
  • La mise en place d’un controller orienté REST via Spring MVC (ce sera très rapide, là n’est pas l’objectif de cet article)
  • La validation d’un simple POJO via un test (un peu plus qu’unitaire) utilisant rest assured, illustrant la testabilité de votre application REST
  • Comment aller plus loin : faire des validations conditionnelles, gérer de manière centralisée le comportement de vos controllers spring sur une erreur de validation
  • Implémenter une validation unifiée client/serveur, basée sur la validation serveur via un appel AJAX

Le fil rouge du post sera simple : l’objectif est de fournir une page d’inscription dans lequel l’utilisateur doit pouvoir saisir un certain nombre d’informations plus ou moins obligatoires le concernant.

Un projet github a été créé pour l’occasion, avec l’ensemble des sources de cet article. N’hésitez pas à le consulter si vous avez des interrogations.

Lire la suite »

Spring ROO : Premiers retours

SpringSource nous a fait un cadeau de fin d’année en nous annonçant, le 31 Décembre 2009, la release de la version 1.0.0 de Spring ROO. Pour rappel, Spring ROO est un interpréteur en ligne de commande, dont l’objectif est de vous permettre de développer rapidement des applications standards via de la génération de code. Pour illustrer l’outil, rien de mieux qu’une petite phrase issue de la documentation officielle :

[…] Most of the time you’ll just go about programming in your text editor or IDE as usual. As you make changes to your project, Roo intelligently determines what you’re trying to do and takes care of doing it for you automatically.

J’ai donc profité d’une journée de mauvais temps pour tester un peu tout ça. Ce billet illustre mes retours.

Mes attentes

Mes attentes sur cette étude sur Spring ROO étaient les suivantes :
– Avoir déjà un premier bagage sur les possibilités offertes par Spring ROO
– Etudier les possibilités de customisations de ce générateur de code
– L’idée sous-jacente étant l’industrialisation de mes développements récurrents

Les questions que je me posais en début d’analyse :

ROO est-il transparent dans les devs ? Quelle adhérence a-t-on avec ce dernier ?
Possibilité de customisation des templates utilisés ? (pour la génération d’une Entity par exemple)
Possibilité de rajout des commandes « à nous » pour générer des choses spécifiques à notre domaine fonctionnel ? (notion de « cartridges » en MDA)
Quelle customisation possible sur l’initialisation de projet ? (ex: utilisation d’archetype maven possible ?)
Quel mode de génération ? Plutôt one shot ou incrémental ?
L’outil peut-il être utilisé dans une approche itérative de type MDA ?