Après avoir assimilé les bases de Spring, cette formation avancée alignée sur Spring Framework 7 et Spring Boot 4 vous permet de maîtriser les briques indispensables aux architectures modernes. Vous concevez des traitements batch robustes avec Spring Batch incluant retry, skip, restart et partitioning, des applications réactives avec Project Reactor / WebFlux et Spring Data R2DBC, vous arbitrez entre Virtual Threads et WebFlux, vous compilez en image GraalVM native avec Spring AOT. Vous sécurisez avec OAuth2 / OIDC, Spring Authorization Server, JWT/refresh/PKCE, vous architecturez en Spring Modulith ou en micro-services avec Spring Cloud — Gateway, Cloud Stream/Kafka, Resilience4j. Vous mettez en place une observabilité distribuée avec OpenTelemetry, Tempo, Loki et Prometheus. Le dernier jour est consacré à Spring AI 1.x : choix de provider parmi OpenAI, Anthropic, Ollama local et Bedrock, prompts, function calling, RAG avec vector stores, structured output et advisors.
Public visé
Architectes techniques, développeurs, chefs de projets techniques.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Concevoir des traitements batch robustes avec Spring Batch
- Développer des applications réactives avec Project Reactor et Spring WebFlux
- Persister en réactif avec Spring Data R2DBC
- Compiler une application en image native GraalVM avec Spring AOT
- Sécuriser avec OAuth2 / OIDC, Spring Authorization Server et JWT
- Architecturer en modular monolith ou en micro-services — Spring Modulith, Spring Cloud
- Mettre en place une observabilité distribuée — OpenTelemetry, tracing, logs centralisés
- Intégrer des modèles d’IA dans une application Spring avec Spring AI — RAG, function calling, structured output
Programme
Jour 1 - Matin
Spring Batch
Architecture Spring Batch
- comprendre le rôle des composants — Job, Step, JobRepository, JobLauncher
- distinguer Step de type chunk et de type tasklet
- positionner Spring Batch face aux autres approches comme cron, scheduled tasks ou streaming
Travaux pratiques :
- Démarrer un Job Spring Batch minimaliste et observer son cycle de vie
Lecture, traitement et écriture
- exploiter les ItemReader natifs pour CSV, XML, base de données, JSON et multi-fichiers
- composer un ItemProcessor pour la transformation et la validation
- écrire avec les ItemWriter natifs et sources multiples
- gérer les sources composites
Travaux pratiques :
- Implémenter un ETL qui lit un CSV, transforme les enregistrements et les charge en base PostgreSQL
Robustesse et exploitation
- gérer la tolérance aux erreurs avec retry et skip
- redémarrer un Job interrompu sans perte de données
- exploiter les listeners Job/Step/Item
- partitionner un Job pour la parallélisation
Travaux pratiques :
- Ajouter retry, skip et restart à un Job de chargement et simuler une interruption
Jour 1 - Après-midi
Programmation réactive et WebFlux
Project Reactor
- distinguer Mono et Flux
- composer des opérateurs tels que map, filter, flatMap, zip et merge
- gérer les schedulers et la backpressure
- comprendre l’absence de blocage
Travaux pratiques :
- Transformer un traitement synchrone en pipeline Reactor
Spring WebFlux côté serveur
- déclarer des contrôleurs réactifs avec
@RestController - exposer des endpoints en functional routing
- gérer la sérialisation Jackson en réactif
Travaux pratiques :
- Exposer une API REST réactive et observer le comportement non bloquant
WebClient et Server-Sent Events
- consommer une API distante avec WebClient
- exposer un flux d’événements via Server-Sent Events
- positionner RSocket pour la communication temps réel bidirectionnelle
Travaux pratiques :
- Exposer un flux SSE de cotations boursières et le consommer côté client
Tests réactifs
- valider un pipeline avec StepVerifier
- isoler le temps avec VirtualTimeScheduler
- couvrir l’asynchrone sans flakiness
Travaux pratiques :
- Écrire des tests StepVerifier sur les pipelines Reactor du jour
Jour 2 - Matin
Spring Data réactif et performance native
R2DBC
- comprendre le modèle réactif appliqué au SQL
- déclarer un Repository R2DBC sur PostgreSQL
- gérer les transactions réactives avec TransactionalOperator
Travaux pratiques :
- Persister et requêter en réactif avec R2DBC PostgreSQL
MongoDB Reactive — mention
- positionner Spring Data MongoDB Reactive
- comprendre les ChangeStreams pour le streaming
Virtual Threads vs WebFlux
- comparer les deux modèles de concurrence en 2026
- arbitrer selon le contexte — latence, débit, lisibilité et écosystème
- mesurer la différence sur un benchmark concret
Travaux pratiques :
- Implémenter le même endpoint en WebFlux et en MVC + Virtual Threads, mesurer la scalabilité
Spring AOT et GraalVM native
- comprendre la compilation AOT de Spring Boot 4
- préparer une application pour la compilation native avec réflexion et hints
- compiler une image native GraalVM
- mesurer le gain de démarrage et l’empreinte mémoire
Travaux pratiques :
- Compiler l’application réactive en image native et comparer démarrage et mémoire avec la JVM standard
Jour 2 - Après-midi
Sécurité avancée
OAuth2 et OIDC
- comprendre les flows OAuth2 Authorization Code et Client Credentials
- distinguer OAuth2 et OpenID Connect
- exploiter PKCE pour les clients publics
Travaux pratiques :
- Configurer un Resource Server validant un JWT issu d’un Identity Provider externe
Spring Authorization Server
- déployer un Authorization Server Spring autonome
- exposer un endpoint de découverte OIDC
- gérer la rotation des clés de signature
- intégrer un consentement utilisateur
Travaux pratiques :
- Implémenter un Authorization Server qui délivre des JWT signés et vérifier le flow Authorization Code
Tokens JWT
- vérifier signature et expiration
- exploiter les refresh tokens et leur révocation
- gérer les access tokens opaques avec introspection
Travaux pratiques :
- Implémenter le rafraîchissement automatique d’un access token côté client
Sécurité réactive WebFlux
- configurer SecurityFilterChain en réactif
- propager le contexte de sécurité dans le pipeline
- tester un endpoint réactif protégé
Travaux pratiques :
- Sécuriser une API WebFlux avec OAuth2 Resource Server et tester en réactif
Multi-tenant — mention
- positionner les patterns multi-tenant — database per tenant, schema ou discriminant
- comprendre l’impact sur Spring Security et Spring Data
Jour 3 - Matin
Cloud Native et observabilité distribuée
Spring Cloud
- positionner Spring Cloud Config pour la configuration centralisée
- exploiter Spring Cloud Discovery avec Eureka ou Consul
- exposer une Gateway Spring Cloud Gateway
- gérer la résilience avec Resilience4j en circuit breaker, retry et bulkhead
Travaux pratiques :
- Exposer trois micro-services derrière une Spring Cloud Gateway avec circuit breaker
Spring Cloud Stream
- consommer et produire des événements Kafka via abstractions Spring
- gérer les binders et les destinations
- positionner les patterns event-driven
Travaux pratiques :
- Implémenter une chaîne producteur / consommateur Kafka via Spring Cloud Stream
Spring Modulith
- structurer un modular monolith en modules vérifiés
- exposer des événements applicatifs entre modules
- contrôler les frontières inter-modules
Travaux pratiques :
- Organiser un projet en modules Spring Modulith avec frontières testées
Tracing distribué
- propager le contexte avec OpenTelemetry natif Spring 7
- collecter les traces dans Tempo, Jaeger ou Grafana Cloud
- corréler logs, métriques et traces
Travaux pratiques :
- Tracer une requête de bout en bout à travers trois micro-services dans Tempo
Logs et métriques centralisés
- exporter les logs structurés vers ELK, Loki ou OpenSearch
- collecter les métriques avec Prometheus et les visualiser dans Grafana
Travaux pratiques :
- Exporter logs et métriques d’un micro-service vers une stack Loki + Prometheus + Grafana locale
Jour 3 - Après-midi
Spring AI
Choix d’un fournisseur de modèle
- comparer les providers supportés — OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Ollama local
- gérer les credentials et les coûts
- arbitrer entre modèle hébergé et modèle local
Travaux pratiques :
- Configurer Spring AI avec deux providers — un hébergé et Ollama local — et basculer par configuration
Prompts et templates
- composer un prompt avec PromptTemplate
- exploiter les System / User / Assistant messages
- gérer la modération du modèle pour éviter les sujets sensibles
Travaux pratiques :
- Exposer un endpoint qui résume un texte et un autre qui répond à des questions techniques
Function calling et tool calling
- exposer des fonctions Spring que le modèle peut appeler
- définir les schémas de paramètres
- chaîner appels et raisonnement
Travaux pratiques :
- Permettre au modèle de consulter une base de connaissance applicative via une fonction Spring
RAG et vector stores
- comprendre le pattern Retrieval-Augmented Generation
- générer des embeddings et les stocker dans pgvector, Redis Stack ou Chroma
- chunker et indexer un corpus documentaire
- composer une chaîne RAG avec Spring AI
Travaux pratiques :
- Indexer un corpus de documents internes dans pgvector et construire un assistant qui répond avec citations
Structured output
- contraindre la sortie du modèle à un schéma typé
- exploiter les BeanOutputConverter et JSON schemas
- valider et gérer les échecs de structuration
Travaux pratiques :
- Exposer un endpoint qui extrait des entités métier structurées depuis un texte libre
Advisors et observabilité AI
- exploiter les advisors pour ajouter mémoire conversationnelle, logging, modération
- mesurer latence, coût en tokens et qualité
- exposer ces métriques dans Actuator + OpenTelemetry
Travaux pratiques :
- Projet final : assistant conversationnel d’entreprise avec RAG sur pgvector, function calling, structured output, mémoire conversationnelle, et observabilité Actuator + OpenTelemetry
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation DEV-JAVA-250 — Spring Framework - Niveau avancé. Domaine : Développement. Niveau : Avancé. Durée : 3 jours (21 heures). Mots-clés : spring framework 7, spring boot 4, spring batch, project reactor, webflux, r2dbc, spring aot, graalvm native, virtual threads, oauth2, oidc, spring authorization server, jwt, pkce, spring cloud, spring cloud stream, kafka, spring modulith, opentelemetry, tempo, loki, prometheus, spring ai, rag, pgvector, function calling, embeddings, perfectionnement. Cylian Formation, Dijon.