SpringMVC v3 pour les nuls avec une démo détaillée

L'objectif est de montrer avec détail comment prendre en main le framework SpringMVC v3.

Cet article s'adresse aux nuls avec comme seul pré-requis de connaître (un peu) le framework Spring.

SpringMVC, dans sa dernière version, offre d'énormes simplifications si on sait l'exploiter.

Il apporte une réponse élégante pour bon nombre de problématiques réelles.

Le projet web démo est basé sur maven3 et java 5+ et toujours avec "full annotations".

Il commence par créer le projet Maven à partir d'une template.

Le pom.xml est configuré pour utiliser tomcat ou jetty embarqués.

Dans la première partie, une classe 'Controller' de traitement et une page jsp sont écrites afin d'afficher le fameux 'Hello World'.

Dans la seconde partie, la fonctionnalité standard de création d'une entité métier est rajoutée.

Pour cela, on écrit un 'Controller' qui affiche le formulaire de saisie et un autre qui gère les données saisies et soumises.

Passons à la mise en pratique.

Configuration de Spring v3: Trois modes

L'objet de ce billet est de décrire les trois modes de configuration de Spring, version 3+.
La première manière de configurer Spring est centrée sur XML.
La seconde, depuis la version 2, est centrée sur les annotations. Chose est sûre, elle exige de la rigueur.
Enfin, la troisième détaillée ci-dessous, est centrée sur du code java avec les annotations @Configuration et @Bean.

Une petite démo, sans aucune configuration xml, permet de voir comment réaliser la configuration centrée-java de Spring (java-centric or based java configuration ).
Le débat dans la communauté sur la meilleure approche est toujours aussi vif.
Il me semble qu'avec ce nouveau mode, le développeur de Spring est gagnant car il aura plus de choix, de contrôle et de liberté.

La nouvelle approche centrée-java offre des avantages :

  • La configuration de Spring est isolée dans une ou plusieurs classes spécifiques annotées et non mélangées avec celles de métier,
  • Le compilateur veille à l'unicité des id des beans (il est recommandé de ne pas utiliser l'attribut name de l'annotation @Bean).
  • La possibilité de mixer les 3 modes de configuration et le tout peut être géré par le code java.

Passons à la pratique