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