Aller au contenu principal

Module 14: Techniques Avancées Spring Boot

Objectifs du Module​

À la fin de ce module, vous serez capable de :

  • Comprendre la programmation réactive avec Spring WebFlux
  • Implémenter un système de cache avec Redis
  • Configurer la messagerie asynchrone avec RabbitMQ
  • Créer des tâches planifiées avec @Scheduled
  • Développer des applications temps réel avec WebSockets

Prérequis​

Avant de commencer ce module, assurez-vous de maîtriser :

  • Modules 1-12: Bases complètes de Spring Boot
  • Module 13: Architecture Microservices
  • Docker (pour Redis, RabbitMQ)
  • Concepts de programmation asynchrone

Plan du Module​

Chapitres Théoriques​

#ChapitreDuréeDescription
1Programmation Réactive1h30WebFlux, Mono, Flux, R2DBC
2Cache avec Redis1h@Cacheable, @CacheEvict, Redis
3Messaging Asynchrone1h15RabbitMQ, Spring AMQP
4Tâches Planifiées45min@Scheduled, @Async, Cron
5WebSockets1hSTOMP, SockJS, temps réel

Travaux Pratiques​

#TPDuréeDescription
1Cache Redis1hMise en cache d'une API
2Messaging RabbitMQ1h30Système de notifications
3WebSocket Chat1h30Application de chat temps réel
4Tâches Planifiées45minBatch et rapports automatiques

Durée totale estimée: 10 heures


Concepts Clés​

Programmation Réactive vs Impérative​

Impérative (Spring MVC):
- Thread par requête
- Bloquant
- Simple à comprendre
- Limité en scalabilité

Réactive (WebFlux):
- Event loop
- Non-bloquant
- Scalabilité élevée
- Courbe d'apprentissage

Quand Utiliser Quoi​

Cas d'UsageTechnologie
API CRUD classiqueSpring MVC
Haute concurrenceWebFlux
Données fréquemment luesCache Redis
Découplage servicesRabbitMQ
Notifications temps réelWebSocket
Rapports périodiques@Scheduled

Stack Technique​

TechnologieVersionUsage
Spring WebFlux3.2.xProgrammation réactive
Project Reactor3.6.xMono/Flux
Redis7.xCache distribué
RabbitMQ3.12.xMessage broker
STOMP1.2WebSocket messaging

Architecture des TPs​

Application Avancée
├── API REST (Spring MVC ou WebFlux)
├── Cache Layer (Redis)
├── Messaging (RabbitMQ)
├── WebSocket (STOMP)
└── Scheduled Tasks

Prêt à Commencer​

Assurez-vous d'avoir Docker installé pour ce module:

# Vérifier Docker
docker --version

# Démarrer Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine

# Démarrer RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

Commencer le Chapitre 1: Programmation Réactive


Retour à l'accueil