Université Claude Bernard Lyon 1 – M2 TIW – Intergiciels et Services

TP Spring framework

Objectifs pédagogiques

Préambule

Dans ce TP, vous allez utiliser le framework Spring et certains des principaux projets de l'infrastructure Spring. Dans un premier temps, vous travaillerez à partir d'une version orientée-composants de votre application calendar, c'est-à-dire comprenant plusieurs calendars (conformes à la même interface), un annuaire, etc. Vous pouvez reprendre celle de la question sur les entity managers du premier TP.

Spring Boot

Créez un projet Forge et poussez-y la structure d'un projet Maven et Spring préconfiguré pour les sous-projets Spring demandés dans les questions suivantes. Pour obtenir ce projet, vous pouvez le créere vous-mêmes ou l'obtenir avec l'outil de configuration automatique fourni par Spring Boot.

Spring Framework

Dans cette section, vous allez utiliser les différents modules de Spring Framework, dont vous trouverez une documentation ici.

Spring Core Container

Faites les manipulations suivantes pour que votre code puisse être utilisé par Spring Core Container :

Spring MVC

Refactorez votre code en MVC pour qu'il fonctionne selon l'architecture Spring Web MVC.

Comme pour le TP d'implémentation de services, faites en sorte que les calendars soient exposés comme des ressources REST et que le client interroge l'application avec des pages statiques et de l'AJAX. Vous êtes libres d'utiliser CXF ou pas.

Spring Test

Utilisez Spring Test pour écrire des tests :

  1. Unitaires pour chacun des composants ; utilisez éventuellement 1 ou plusieurs mocks ad hoc
  2. D’intégration (1 minimum)

Spring AOP

Utilisez Spring AOP pour créer un nouvel aspect chargé de valider les données du formulaire, notamment la forme des événements.

Spring Data

À l’aide de Spring Data, créez un DAO s’appuyant sur JPA pour implémenter la persistance des calendars (cf. question entity manager du TP2).

Spring Security

À l’aide de Spring Security, utilisez l’authentification via OAuth pour faire en sorte que chaque utilisateur puisse accéder à son calendar personnel.

Rendu du TP

Ce TP n'est pas à rendre, mais vous devez le terminer avant la fin de la séance suivante car vous en aurez besoin pour les TPs suivants.

Licence Creative Commons
Valid XHTML 1.0 Strict