Gestion globale des exceptions dans spring mvc (global exception handling)-Part 2

Spring_FrameworkSpringMVC

Nous discuterons dans cette deuxième partie de la troisième approche: La gestion globale des exceptions dans une application web spring mvc. Ce billet est la suite de la part-1.
La lecture de la première partie peut vous aider à suivre celle-ci.

Dans cette approche globale la gestion technique ne se fait pas au niveau du controlleur individuellement mais centralisée au niveau de toute l'application web.
Cela passe par une classe annotée avec @ControllerAdvice.

Toute classe ainsi annotée devient en quelque sorte un controller-advice et servira à centraliser la gestion des exceptions levées par n'importe quel controlleur!

Est ce une bonne approche dans l'absolu ? Je n'en sais rien, tout dépend du contexte.

Tests JUnit4 combiné avec Spring et Spring MVC en mode transactionnel

Le titre de ce billet montre bien l'étendue des thèmes variés qui seront traités. Il a pour objectif d'illustrer, à l'aide d'un exemple assez complet et proche des cas réels, la mise en place des tests, en mode transactionnel, pour les différentes couches applicatives. Ainsi les vraies difficultés rencontrées par les développeurs seront évoquées.

Le billet traite JUnit4 enrichi avec les annotations de Spring 2.5+ et ses lanceurs pour exécuter facilement les tests.
Des illustrations en mode transactionnel vous sont proposées à la fin de ce billet.
Le framework JUnit est l'oeuvre conjointe de Kent Beck (créateur de XP) et Erich Gamma (auteur des Design Patterns).
Avec la version 4, JUnit tente de rattraper son retard sur Testng tout en gardant la compatibilité avec JUnit3x ainsi qu'une parfaite intégration aux éditeurs Eclipse, Netbeans, ...

Avec les lanceurs de spring, les tests deviennent plus attrayants. Spring encourage ainsi à adopter l'approche TDD "Test Driven Design" ou "Test-First Developpment".
Notez que le jdk5+ est nécessaire pour certaines parties de code Java. Les commentaires dans le code java le mentionnent au bon endroit.