Spring est devenu le framework incontournable pour le développement d’applications Java en entreprise. Cette formation de 5 jours, alignée sur Spring Framework 7 et Spring Boot 4 sortis fin 2025, avec mention de Spring 6 et Boot 3 toujours supportés, vous guide depuis les fondamentaux de l’injection de dépendances jusqu’à la mise en production d’applications web complètes. Vous couvrez l’architecture en couches, Spring Data JPA avec Testcontainers, Spring Web et les API REST, Spring Security 7 avec OAuth2/JWT, et l’observabilité avec Actuator, Micrometer et OpenTelemetry natif. Un chapitre est dédié à la migration Spring 6→7 / Boot 3→4 et un module à l’usage critique d’un assistant IA pour générer du code Spring. Les sujets avancés tels que Virtual Threads, GraalVM native, Spring Modulith, Spring Cloud et Spring AI sont réservés au programme de perfectionnement.
Public visé
Développeurs, architectes et 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 une application d’entreprise avec Spring Framework 7 et Spring Boot 4
- Configurer le conteneur léger Spring et exploiter les annotations
- Accéder aux données avec Spring Data JPA et gérer les transactions
- Construire des API REST avec Spring Web et les sécuriser avec Spring Security 7
- Tester une application Spring avec Spring Boot Test et Testcontainers
- Mettre en production une application observable — Actuator, Micrometer, OpenTelemetry
- Migrer une application de Spring 6/Boot 3 vers Spring 7/Boot 4
- Utiliser un assistant IA pour générer et relire du code Spring de façon critique
Programme
Jour 1 - Matin
Vue d’ensemble de Spring
Origine et philosophie
- comprendre la place de Spring face à Jakarta EE
- saisir le principe d’inversion de contrôle et d’injection de dépendances
- situer l’écosystème Spring avec Framework, Boot, Data, Security et Cloud
Travaux pratiques :
- Explorer un projet Spring Boot existant et identifier ses couches
Versions et compatibilité
- positionner Spring Framework 7 et Spring Boot 4 sortis fin 2025
- comprendre le support continu de Spring 6 / Boot 3
- vérifier la compatibilité Java 21 LTS, Java 25 LTS et Jakarta EE 11
Travaux pratiques :
- Créer un projet vierge Spring Boot 4 sur JDK 25 et démarrer l’application
Architecture en couches
- structurer une application en couches présentation, métier et accès aux données
- comprendre la séparation des responsabilités
Travaux pratiques :
- Esquisser l’architecture cible du fil rouge de la formation
Jour 1 - Après-midi
Spring Core
Conteneur et beans
- comprendre le rôle du conteneur léger
- déclarer un bean en annotation ou en configuration Java
- maîtriser les scopes des beans
- nommer et qualifier des beans
Travaux pratiques :
- Déclarer un service applicatif et l’injecter dans plusieurs consommateurs avec des scopes différents
Application Context et SpEL
- comprendre le cycle de vie d’un bean
- exploiter SpEL pour des valeurs dynamiques
- découvrir les événements applicatifs
Travaux pratiques :
- Déclencher une initialisation conditionnelle via une expression SpEL
Jour 2 - Matin
Spring Boot — fondamentaux
Démarrage rapide
- créer un projet via Spring Initializr
- comprendre le rôle des starters
- structurer une application Spring Boot
Travaux pratiques :
- Générer un projet Spring Boot via Initializr et démarrer le serveur intégré
Auto-configuration
- comprendre le mécanisme d’auto-configuration
- inspecter les conditions d’activation
- surcharger une auto-configuration
Travaux pratiques :
- Tracer les auto-configurations actives au démarrage et désactiver l’une d’elles
Configuration externalisée
- charger la configuration depuis
application.yml - exploiter les
@ConfigurationPropertiestypées
Travaux pratiques :
- Externaliser les paramètres d’une mini-application dans
application.yml
Spring DevTools
- accélérer le développement avec le rechargement automatique
- exploiter LiveReload côté navigateur
Travaux pratiques :
- Modifier une page et observer le rechargement automatique
Jour 2 - Après-midi
Configuration avancée et profils
Profils Spring
- séparer les configurations par profil dev, test et prod
- activer un profil au démarrage
- charger les fichiers
application-{profile}.yml - composer plusieurs profils
- gérer les variables d’environnement et les secrets
Travaux pratiques :
- Configurer les profils dev, test et prod avec des sources de données distinctes et faire varier le comportement de l’application au démarrage
Sources de configuration externes
- gérer les secrets en production
- découvrir les conventions de variables d’environnement
- positionner les solutions de gestion centralisée, en mention
Travaux pratiques :
- Externaliser une clé d’API via une variable d’environnement et la consommer dans l’application
Jour 3 - Matin
Spring Data et JPA
Patterns DAO et DTO
- séparer la couche d’accès aux données du métier
- comprendre l’usage des DTO pour les frontières applicatives
Travaux pratiques :
- Modéliser les DTO d’une API d’articles indépendamment des entités JPA
Mapping JPA
- annoter une entité simple avec ses contraintes
- maîtriser les relations 1:1, 1:N et N:N
- gérer les chargements lazy et eager
- modéliser un héritage avec JPA
Travaux pratiques :
- Modéliser les entités
Article,Author,Tagavec leurs relations puis tester la persistance
Repository Spring Data
- déclarer un Repository pour une entité
- exploiter les Query Methods dérivées du nom
- découvrir Specification pour la recherche dynamique
Travaux pratiques :
- Implémenter les opérations CRUD d’
Articlevia un Repository et observer les requêtes générées
Jour 3 - Après-midi
Requêtes Spring Data, transactions et tests Data
Requêtes personnalisées
- écrire des requêtes JPQL avec
@Query - utiliser des requêtes natives quand JPQL ne suffit pas
- définir des Named Queries au niveau de l’entité
Travaux pratiques :
- Implémenter une recherche complexe d’articles publiés par auteur avec pagination
Pagination et tri
- exploiter
PageableetSort - exposer une réponse paginée
Travaux pratiques :
- Exposer un endpoint paginé sur la collection d’articles
Transactions
- comprendre les niveaux d’isolation et la propagation
- annoter une méthode avec
@Transactional - gérer les rollbacks sur exception
Travaux pratiques :
- Implémenter un transfert métier qui doit être atomique et tester son rollback
Jour 4 - Matin
Spring Web et API REST
Spring MVC
- comprendre le routage Spring MVC
- exploiter les annotations de mapping HTTP
- gérer les paramètres, les en-têtes et le corps des requêtes
Travaux pratiques :
- Exposer une page HTML rendue côté serveur consommant un service métier
API REST avec @RestController
- concevoir un contrôleur REST idiomatique
- gérer les statuts HTTP avec
ResponseEntity - documenter avec OpenAPI / Swagger
Travaux pratiques :
- Exposer une API REST CRUD sur la ressource
Articleet la documenter via OpenAPI
Bean Validation et conversion
- valider les entrées avec Bean Validation 3.1 sous Jakarta
- gérer les erreurs de validation avec
@ControllerAdvice - convertir et formater les valeurs
Travaux pratiques :
- Valider les payloads de création et de mise à jour avec retour d’erreurs structuré
HTTP Interface clients
- consommer une API distante avec RestClient depuis Spring 6.1
- déclarer un client HTTP avec
@HttpExchangedepuis Spring 7 - positionner WebClient pour la programmation réactive
Travaux pratiques :
- Consommer une API publique via un client
@HttpExchangetypé
Programmation réactive — mention
- comprendre Project Reactor et la backpressure
- positionner WebFlux face à Spring MVC
Travaux pratiques :
- Démonstration d’un endpoint réactif WebFlux
Jour 4 - Après-midi
Spring Security 7
Fondamentaux Spring Security
- comprendre la chaîne de filtres
- configurer une
SecurityFilterChainen Java config - déclarer des règles d’accès par URL et par méthode
Travaux pratiques :
- Protéger un ensemble d’endpoints REST avec authentification basique
Authentification
- gérer un
UserDetailsServiceet unPasswordEncoder - intégrer une source d’utilisateurs en base
- exposer login et logout
Travaux pratiques :
- Implémenter l’authentification utilisateur contre une table en base avec hachage
Autorisation
- annoter les méthodes avec
@PreAuthorizeet@PostAuthorize - exploiter SpEL côté sécurité
- modéliser des ACL au besoin
Travaux pratiques :
- Restreindre l’édition d’un article à son auteur via
@PreAuthorize
OAuth2 et JWT
- configurer un Resource Server validant un JWT
- comprendre le rôle d’un Authorization Server
- protéger une API par token
Travaux pratiques :
- Protéger l’API REST avec un Resource Server JWT et tester l’accès
Jour 5 - Matin
Tests complets
Spring Boot Test fondamentaux
- écrire un test d’intégration
@SpringBootTest - mocker un bean avec
@MockitoBean - isoler le contexte applicatif d’un test à l’autre
Travaux pratiques :
- Tester le contexte d’une application en succès et en cas de bean manquant
Tests Data avec Testcontainers
- isoler la couche persistance avec
@DataJpaTest - provisionner une PostgreSQL réelle via Testcontainers et
@ServiceConnection - valider les requêtes Repository et JPQL
Travaux pratiques :
- Écrire des tests sur le Repository de la couche Data, exécutés contre PostgreSQL provisionnée par Testcontainers
Tests Web avec @WebMvcTest et MockMvc
- isoler la couche Web avec
@WebMvcTest - simuler une requête HTTP sans serveur avec MockMvc
- vérifier statuts, en-têtes et contenu de la réponse
Travaux pratiques :
- Tester l’API REST
Articleavec@WebMvcTestet MockMvc, en succès et en cas d’erreur de validation
Tests Security
- tester un endpoint protégé avec
@WithMockUser - valider les autorisations par méthode
Travaux pratiques :
- Couvrir les règles d’autorisation de l’API par des tests Spring Security
Jour 5 - Après-midi
Production, migration et IA
Production et observabilité
- exposer la santé applicative avec Spring Boot Actuator
- collecter des métriques avec Micrometer
- tracer les requêtes avec OpenTelemetry natif Spring 7
- corréler logs et traces
Travaux pratiques :
- Instrumenter l’application avec Actuator et OpenTelemetry et visualiser les traces
Migration Spring 6/Boot 3 → Spring 7/Boot 4
- identifier les breaking changes de Spring Framework 7 et Jakarta EE 11
- exploiter les outils de migration tels qu’OpenRewrite et Spring Boot Migrator
Travaux pratiques :
- Migrer une mini-application Spring Boot 3 vers Spring Boot 4 et corriger les ruptures
Spring et IA
- situer les assistants disponibles
- formuler un prompt qui précise la version Spring Boot 4 ou Framework 7 et les conventions
- repérer les pièges spécifiques — versions Spring mélangées dans les exemples, API dépréciées,
javaxvsjakarta - vérifier systématiquement le code généré par exécution Spring Boot Test et inspection Actuator
Travaux pratiques :
- Projet final : application Spring Boot 4 incluant Spring Data JPA avec tests Testcontainers, REST avec Bean Validation, Spring Security 7 avec JWT, Actuator avec OpenTelemetry et migration depuis Spring Boot 3 ; un module fonctionnel est généré avec un assistant IA puis corrigé pour respecter les conventions Spring 7 et passer les tests
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Pour aller plus loin
Cette formation donne accès à cette formation :
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation DEV-JAVA-240 — Java - Spring Framework - Initiation. Domaine : Développement. Niveau : Intermédiaire. Durée : 5 jours (35 heures). Mots-clés : spring framework 7, spring boot 4, java 21, java 25, jakarta ee 11, spring data jpa, spring security 7, oauth2, jwt, testcontainers, mockmvc, actuator, micrometer, opentelemetry, http interface, restclient, ia. Cylian Formation, Dijon.