Le conteneur Spring
- Pratiques de conception.
- Spring dans l'écosystème Jakarta EE.
- Les composants essentiels : core, accès aux donnés, webmvc.
- L'intégration aux autres technologies.
- L’apport de Spring boot : la gestion des dépendances Maven, la configuration automatique.
- L’environnement de développement.
- Les stratégies de déploiement : JAR, image OCI, application native.
Gestion des beans avec Spring Core et Spring boot.
- Le découpage en couches, l'approche POJO.
- La gestion de l'état. L'injection de dépendances.
- Les intercepteurs et la programmation orientée aspect.
- Le cache et la supervision avec JMX.
- Les invocations planifiées. Les profils. Test des beans Spring.
Travaux pratiques
Créer une application n-tiers avec Spring Core et Spring Boot.
Accès aux données et gestion des transactions
- L’accès à une base de données relationnelle depuis une application Spring
- La gestion des transactions.
- Le support des transactions dans les tests.
- Introduction à Spring Data.
Travaux pratiques
Mise en place d’une couche d'accès aux données avec Spring.
API REST avec Spring MVC et Spring WebFlux
- Bonnes pratiques de conception d'une API REST.
- Mise en place de l'API REST.
- La validation avec l'API Jakarta validation.
- La gestion des exceptions.
- Introduction à la programmation réactive avec Spring Webflux.
Travaux pratiques
Développer une API exposant les services développés précédemment, consommation des web services REST par un client HTML/JavaScript.
IHM Web avec Spring MVC
- Rappel du pattern MVC.
- La validation avec l’API Bean Jakarta validation.
- Les vues : accès au modèle, internationalisation, gestion des exceptions.
Travaux pratiques
Création d'une application web exposant la couche métier développée précédemment.
Spring Security
- Définition d'un référentiel utilisateurs.
- Modes d'authentifications (session, JWT).
- Sécurisation des routes.
- Tests d'une application sécurisée.
Travaux pratiques
Application de la sécurité sur le projet web.
Échanges de messages avec Spring Websocket
- Théorie, design patterns, le principe pub/sub.
- Présentation de STOMP et SockJS.
- Mise en place côté serveur et côté client.
Travaux pratiques
Création d’un mécanisme de publish/subscribe entre une application Spring MVC et un front end HTML/Javascript.