Formation Spring Boot
Développement d'Applications Java Modernes
Code du cours: 420-XXX-XX
Session: Hiver 2025
Enseignant: À définir
Institution: inskillflow academy
Vue d'Ensemble du Cours
Cette formation complète vous permettra de maîtriser Spring Boot, le framework Java le plus populaire pour le développement d'applications modernes. De l'introduction aux concepts avancés, vous apprendrez à créer des applications professionnelles robustes et scalables.
Objectifs d'Apprentissage
À la fin de ce cours, vous serez capable de:
- Comprendre les fondamentaux de Spring Boot et son écosystème
- Développer des applications web avec Spring MVC et REST APIs
- Gérer la persistance des données avec Spring Data JPA
- Sécuriser vos applications avec Spring Security
- Déployer et monitorer des applications en production
- Créer des microservices avec Spring Cloud
- Appliquer les bonnes pratiques de développement Java moderne
Approche Pédagogique
70% Pratique - 30% Théorie
Chaque module combine:
- Cours magistraux sur les concepts fondamentaux
- Laboratoires pratiques hands-on
- Projets réels de développement
- Exercices et quiz
Chapitre 1 — Liste des Quiz
Testez vos connaissances après chaque module :
| Module | Quiz | Sujet |
|---|---|---|
| 2 | Quiz Module 2 | Premiers pas, Spring Initializr, annotations de base |
| 3 | Quiz Module 3 | Architecture en couches, CRUD, validation |
| 4 | Quiz Module 4 | PostgreSQL, Jakarta Persistence, Hibernate, Lombok |
| 5 | Quiz Chapitre 1 | IoC et injection de dépendances |
| 5 | Quiz Chapitre 2 | Types d'injection, @Qualifier |
| 5 | Quiz Chapitre 3 | Beans et contexte Spring |
| 5 | Quiz Chapitre 4 | Scopes et configuration |
| 6 | Quiz Module 6 | JPA avancé, conventions, relations, @Query |
| 7 | Quiz Module 7 | Datasources, transactions, Flyway |
| 8 | Quiz Module 8 | Spring Security, JWT, OAuth2 |
| 9 | Quiz Module 9 | Tests unitaires, intégration, MockMvc |
| 10 | Quiz Module 10 | Exceptions, logging, Logback |
| 11 | Quiz Module 11 | Actuator, Prometheus, Grafana |
| 12 | Quiz Module 12 | Docker, CI/CD, déploiement |
| 13 | Quiz Module 13 | Microservices, Eureka, Gateway |
| 14 | Quiz Module 14 | Cache Redis, RabbitMQ, WebSocket |
Chapitre 2 — Liste des Travaux Pratiques
Tous les TPs du cours, organisés par module :
Module 1 — Introduction
| TP | Sujet | Durée |
|---|---|---|
| TP1.1 | Installation de Java JDK 17 (Windows, macOS, Linux) | 20-30 min |
| TP1.2 | Installation de Maven 3.9.x (Windows, macOS, Linux) | 30-45 min |
Module 2 — Premiers Pas
| TP | Sujet | Durée |
|---|---|---|
| TP2.1 | Application "Greeting" avec Spring Boot | 1-2h |
| TP2.2 | Base de données H2 (mémoire et persistance) | 1-2h |
Module 3 — Architecture en Couches et CRUD
| TP | Sujet | Durée |
|---|---|---|
| TP3.1 | Architecture CRUD complète (guidé avec code) | 4-6h |
| TP3.2 | CRUD autonome — même énoncé, sans code (défi) | 2-3h |
Module 4 — Bases de Données en Production
| TP | Sujet | Durée |
|---|---|---|
| TP4.1 | Migration PostgreSQL avec Jakarta Persistence | 2-3h |
Module 5 — Spring Core (IoC / DI)
| TP | Sujet | Durée |
|---|---|---|
| TP5.1 | Injection de dépendances avancée | 1-2h |
| TP5.2 | Gestion des beans et scopes | 1-2h |
| TP5.3 | Configuration et profils | 1-2h |
Module 6 — JPA Avancé
| TP | Sujet | Durée |
|---|---|---|
| TP6.1 | Conventions de nommage avancées | 2h |
| TP6.2 | Relations Employee-Department | 2-3h |
| TP6.3 | Exercice Airport-Flight-Passenger | 3-4h |
Module 7 — Transactions et Migrations
| TP | Sujet | Durée |
|---|---|---|
| TP7.1 | Configuration Datasource | 1-2h |
| TP7.2 | Transactions et Rollback | 2h |
| TP7.3 | Migration avec Flyway | 1-2h |
Module 8 — Spring Security
| TP | Sujet | Durée |
|---|---|---|
| TP8.1 | Authentification par formulaire | 1-2h |
| TP8.2 | Authentification JWT | 2-3h |
| TP8.3 | Rôles et permissions | 2h |
| TP8.4 | OAuth2 avec Google | 2h |
Module 9 — Tests
| TP | Sujet | Durée |
|---|---|---|
| TP9.1 | Tests unitaires du Service Layer | 2h |
| TP9.2 | Tests d'intégration des Repositories | 2h |
| TP9.3 | Tests REST API avec MockMvc | 2h |
Module 10 — Exceptions et Logging
| TP | Sujet | Durée |
|---|---|---|
| TP10.1 | Gestion centralisée des erreurs | 2h |
| TP10.2 | Système de logging professionnel | 1-2h |
Module 11 — Monitoring
| TP | Sujet | Durée |
|---|---|---|
| TP11.1 | Configuration Actuator | 1-2h |
| TP11.2 | Monitoring Prometheus et Grafana | 2-3h |
Module 12 — Déploiement
| TP | Sujet | Durée |
|---|---|---|
| TP12.1 | Dockerisation complète | 2-3h |
| TP12.2 | Pipeline CI/CD et déploiement | 2-3h |
Module 13 — Microservices
| TP | Sujet | Durée |
|---|---|---|
| TP13.1 | Eureka Server et clients | 2h |
| TP13.2 | Config Server | 1-2h |
| TP13.3 | API Gateway | 2h |
| TP13.4 | Feign et Resilience4j | 2-3h |
Module 14 — Techniques Avancées
| TP | Sujet | Durée |
|---|---|---|
| TP14.1 | Cache avec Redis | 2h |
| TP14.2 | Messaging avec RabbitMQ | 2h |
| TP14.3 | WebSocket temps réel | 2h |
| TP14.4 | Tâches planifiées | 1-2h |
Plan de Cours - 19 Modules
MODULE 1 - Introduction à Spring Boot
Durée: 1 séance
Contenu:
- Histoire et évolution de Spring Boot
- Modèle MVC (Model-View-Controller)
- Apache Tomcat et serveurs intégrés
- Jackson et gestion JSON
- Auto-configuration et conventions
Objectifs:
- Comprendre l'écosystème Spring
- Identifier les avantages de Spring Boot
- Découvrir les concepts fondamentaux
MODULE 2 - Premiers Pas avec Spring Boot [COMPLÉTÉ]
Durée: 2-3 séances
Contenu:
- Spring Initializr
- Structure d'un projet Spring Boot
- Fichiers de configuration (application.properties/yml)
- Annotations de base (@RestController, @Service, @Repository)
- Introduction aux Repositories JPA (4 méthodes de base: save, findById, findAll, deleteById)
- Conventions de nommage simples (findBy, And, Or)
Travaux Pratiques:
- TP1: Application Greeting avec Visual Studio Code
- TP2: Base de Données H2 (Mémoire et Persistance)
Note pédagogique: Module simplifié pour se concentrer sur les fondamentaux. Les TPs avancés ont été déplacés aux Modules 3 et 4 avec la théorie appropriée.
MODULE 3 - Architecture en Couches et CRUD Complet [COMPLÉTÉ]
Durée: 2-3 séances
Contenu Théorique:
- La couche Service en détail (rôle, responsabilités, séparation des préoccupations)
- Validation des données avec Bean Validation (JSR 380)
- Annotations: @NotNull, @NotEmpty, @Size, @Min, @Max, @Email, @Pattern, @Valid
- Gestion des erreurs HTTP professionnelle
- ResponseEntity et codes de statut HTTP (200, 201, 204, 400, 404, 500)
- @ExceptionHandler et @ControllerAdvice
- Architecture 3 couches professionnelle
Travaux Pratiques:
- TP1: Architecture CRUD Complète (API Product avec validation et gestion d'erreurs)
Prérequis: Module 2 complété
Note: Ce module contient l'ancien TP3 du Module 2, maintenant avec TOUTE la théorie nécessaire.
MODULE 4 - Bases de Données en Production [COMPLÉTÉ]
Durée: 2-3 séances
Contenu Théorique:
- PostgreSQL: Installation, configuration, outils d'administration
- Jakarta vs Javax Persistence (historique, migration, compatibilité)
- Hibernate et stratégies DDL (none, validate, update, create, create-drop)
- Dialectes Hibernate et configuration
- Lombok: @Data, @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder
- Migration entre bases de données
Travaux Pratiques:
- TP1: Migration PostgreSQL et Production (avec Lombok, Jakarta, multi-BDD)
Prérequis: Module 2 et 3 complétés
Note: Ce module contient l'ancien TP4 du Module 2, maintenant avec TOUTE la théorie nécessaire.
MODULE 5 - Spring Core - IoC et DI Avancé [À venir]
Durée: 2 séances
Contenu:
- Inversion de Contrôle (IoC) approfondie
- Injection de Dépendances (DI) avancée
- Beans et contexte Spring
- Cycle de vie des beans
- Scopes (@Singleton, @Prototype, @Request, @Session)
- Configuration Java vs XML
Labs:
- Lab 5.1: Injection de dépendances avancée
- Lab 5.2: Gestion des beans et scopes
- Lab 5.3: Configuration personnalisée
MODULE 6 - Spring Data JPA Avancé [COMPLÉTÉ]
Durée: 3 séances
Contenu:
- Conventions de nommage complètes (15+ mots-clés: Between, LessThan, GreaterThan, Like, In, IsNull, etc.)
- Jointures et relations complexes (@OneToMany, @ManyToOne, @ManyToMany)
- JPQL et requêtes personnalisées avec @Query
- Requêtes natives SQL
- Pagination et tri avancés
- Optimisation des performances (lazy loading, fetch strategies)
Labs:
- Lab 6.1: Conventions de nommage avancées
- Lab 6.2: Jointures Employee-Department
- Lab 6.3: Exercice Airport-Flight-Passenger (20 questions)
- Lab 6.4: Évaluation complète avec solutionnaire
Note: Ce module contient le contenu JPA avancé qui était initialement dans le Module 2 (Chapitre 5 original).
MODULE 7 - Bases de Données et Transactions [À venir]
Durée: 2 séances
Contenu:
- Configuration des datasources
- Gestion des transactions (@Transactional)
- Migration de schéma (Flyway, Liquibase)
- Connexion à différentes BDD (MySQL, PostgreSQL, H2)
Labs:
- Lab 7.1: Configuration multi-datasources
- Lab 7.2: Transactions et rollback
- Lab 7.3: Migration avec Flyway
MODULE 8 - Spring Security
Durée: 2 séances
Contenu:
- Authentification et autorisation
- Configuration de sécurité
- JWT (JSON Web Tokens)
- OAuth2 et SSO
- Protection CSRF
Labs:
- Lab 8.1: Authentification basique
- Lab 8.2: JWT Authentication
- Lab 8.3: Rôles et permissions
MODULE 9 - Tests avec Spring Boot
Durée: 2 séances
Contenu:
- Tests unitaires avec JUnit 5
- Tests d'intégration
- MockMvc et WebTestClient
- Mocking avec Mockito
- Couverture de code
Labs:
- Lab 9.1: Tests unitaires
- Lab 9.2: Tests d'intégration
- Lab 9.3: Tests REST API
MODULE 10 - Gestion des Exceptions et Logging
Durée: 1 séance
Contenu:
- @ControllerAdvice et gestion globale
- Réponses d'erreur personnalisées
- Logging avec SLF4J et Logback
- Niveaux de logs et configuration
Labs:
- Lab 10.1: Gestionnaire d'exceptions global
- Lab 10.2: Configuration du logging
- Lab 10.3: Logs structurés
MODULE 11 - Spring Boot Actuator et Monitoring
Durée: 1 séance
Contenu:
- Endpoints Actuator
- Métriques et health checks
- Monitoring avec Prometheus et Grafana
- Tracing distribué
Labs:
- Lab 11.1: Configuration Actuator
- Lab 11.2: Métriques personnalisées
- Lab 11.3: Dashboard de monitoring
MODULE 12 - Déploiement et Production
Durée: 2 séances
Contenu:
- Packaging (JAR vs WAR)
- Profils d'environnement
- Déploiement sur serveurs
- Conteneurisation avec Docker
- CI/CD avec GitHub Actions
Labs:
- Lab 12.1: Build et packaging
- Lab 12.2: Dockerfile et Docker Compose
- Lab 12.3: Pipeline CI/CD
MODULE 13 - Spring Cloud et Microservices
Durée: 2 séances
Contenu:
- Architecture microservices
- Service discovery (Eureka)
- Configuration centralisée (Config Server)
- API Gateway
- Communication inter-services
Labs:
- Lab 13.1: Eureka Server et clients
- Lab 13.2: Config Server
- Lab 13.3: API Gateway avec Spring Cloud Gateway
MODULE 14 - Techniques Avancées
Durée: 2 séances
Contenu:
- Programmation réactive (WebFlux)
- Cache avec Spring Cache (Redis)
- Messages asynchrones (RabbitMQ, Kafka)
- Scheduled tasks
- WebSockets
Labs:
- Lab 14.1: Cache Redis
- Lab 14.2: Messaging avec RabbitMQ
- Lab 14.3: WebSocket real-time
MODULE 15 - Projet Final
Durée: 3 séances
Contenu:
- Projet complet de A à Z
- Application e-commerce ou système de gestion
- Intégration de tous les concepts
- Présentation et code review
Livrables:
- Application complète fonctionnelle
- Documentation technique
- Tests complets
- Déploiement Docker
MODULE 16 - Projet E-Contact Backend
Durée: 3 séances
Contenu:
- Projet complet guidé — API REST de formulaire de contact
- Authentification et sécurité JWT
- Base de données PostgreSQL
- Intégration Frontend
- Déploiement avec GitHub Codespaces
Chapitres:
- Chapitre 1: Démarrage avec Codespaces
- Chapitre 2: Troubleshooting
- Chapitre 3: Intégration Frontend
- Chapitre 4: Cours Complémentaire
- Chapitre 5: Security Avancée
MODULE 17 - Annotations Spring Boot (Référence)
Contenu:
- Référence exhaustive de toutes les annotations Spring Boot
- Annotations Core (IoC, DI, Configuration)
- Annotations Web et REST
- Annotations Data/JPA
- Annotations Security, Test et Avancées
- Dictionnaire A-Z (120+ annotations)
Chapitres:
- Chapitre 1: Annotations Core
- Chapitre 2: Annotations Web/REST
- Chapitre 3: Annotations Data/JPA
- Chapitre 4: Security, Test et Avancées
- Chapitre 5: Dictionnaire A-Z
MODULE 18 - Questions d'Entrevue
Contenu:
- Préparation complète aux entrevues techniques Java/Spring Boot
- Questions classées par thème et niveau de difficulté
- Exercices de code, algorithmes, refactoring
- Pièges courants et concepts fondamentaux
Chapitres:
- Chapitre 1: JPA & Base de données (N+1, Lazy/Eager, @Transactional)
- Chapitre 2: Exercices de Refactoring (Guard clauses, Strategy, SRP)
- Chapitre 3: Algorithmes & Structures (HashMap, Stack, Binary Search)
- Chapitre 4: Conception REST & Design Patterns (Builder, Singleton, Observer)
- Chapitre 5: Débogage & Revue de code
- Chapitre 6: Pièges Java Fondamentaux (== vs .equals(), hashCode, final, static)
- Chapitre 7: Collections Java (List, Map, Set, Stream API)
- Chapitre 8: C'est quoi...? (DTO, MVC, CRUD, IoC, ORM, Docker, CI/CD, JWT)
MODULE 19 - Dépôts GitHub (Références)
Contenu:
- Liens vers tous les dépôts de la formation
- Dépôt du site de documentation (Docusaurus)
- Dépôt du projet e-contact-backend
- Annexes Security
- Ressources complémentaires
Outils et Technologies
Environnement de Développement
- IDE: IntelliJ IDEA / Eclipse / VS Code
- JDK: Java 17 ou 21 (LTS)
- Build Tool: Maven ou Gradle
- Git: Contrôle de version
Technologies Spring
- Spring Boot 3.x
- Spring MVC
- Spring Data JPA
- Spring Security
- Spring Cloud
- Spring Boot Actuator
Bases de Données
- H2 (développement)
- MySQL / PostgreSQL (production)
- Redis (cache)
Outils Complémentaires
- Docker et Docker Compose
- Postman / Insomnia
- Swagger / OpenAPI
- Lombok
Compétences Développées
Compétences Techniques
Développement Backend:
- Conception et développement d'APIs REST
- Gestion de la persistance avec JPA/Hibernate
- Sécurisation d'applications web
- Tests automatisés
- Déploiement et DevOps
Architecture:
- Patterns de conception (MVC, Repository, Service Layer)
- Architecture microservices
- Séparation des responsabilités
- Design d'APIs RESTful
Bonnes Pratiques:
- Clean Code
- SOLID principles
- Convention over Configuration
- Test-Driven Development (TDD)
Compétences Professionnelles
- Méthodologie Agile
- Documentation technique
- Travail en équipe
- Résolution de problèmes
- Veille technologique
Évaluations
Travaux Pratiques (50%)
- TP1: Application web CRUD simple (10%)
- TP2: API REST avec JPA et sécurité (15%)
- TP3: Application complète avec tests (25%)
Laboratoires (20%)
- Labs hebdomadaires (15%)
- Participation et engagement (5%)
Projet Final (30%)
- Application complète (20%)
- Présentation et documentation (10%)
Total: 100%
Prérequis
Connaissances Préalables
- Programmation orientée objet (POO)
- Bases de Java
- Concepts web (HTTP, HTML, CSS)
- Bases de données relationnelles (SQL)
Matériel Requis
- Ordinateur avec minimum 8 GB RAM (16 GB recommandé)
- 50 GB d'espace disque libre
- Connexion Internet stable
Logiciels à Installer
- JDK 17 ou 21
- IntelliJ IDEA Community (ou autre IDE)
- MySQL ou PostgreSQL
- Docker Desktop
- Postman
Ressources du Cours
Documentation Officielle
Livres Recommandés
- "Spring Boot in Action" - Craig Walls
- "Pro Spring Boot 2" - Felipe Gutierrez
- "Spring Microservices in Action" - John Carnell
Communauté
Progression du Cours
[COMPLÉTÉ] MODULE 1 - Introduction à Spring Boot
[COMPLÉTÉ] MODULE 2 - Premiers Pas avec Spring Boot
[COMPLÉTÉ] MODULE 3 - Architecture en Couches et CRUD
[COMPLÉTÉ] MODULE 4 - Bases de Données en Production
[COMPLÉTÉ] MODULE 5 - Spring Core - IoC et DI Avancé
[COMPLÉTÉ] MODULE 6 - Spring Data JPA Avancé
[COMPLÉTÉ] MODULE 7 - Bases de Données et Transactions
[COMPLÉTÉ] MODULE 8 - Spring Security
[COMPLÉTÉ] MODULE 9 - Tests avec Spring Boot
[COMPLÉTÉ] MODULE 10 - Gestion des Exceptions et Logging
[COMPLÉTÉ] MODULE 11 - Spring Boot Actuator et Monitoring
[COMPLÉTÉ] MODULE 12 - Déploiement et Production
[COMPLÉTÉ] MODULE 13 - Spring Cloud et Microservices
[COMPLÉTÉ] MODULE 14 - Techniques Avancées
[COMPLÉTÉ] MODULE 15 - Projet Final
[COMPLÉTÉ] MODULE 16 - Projet E-Contact Backend
[COMPLÉTÉ] MODULE 17 - Annotations Spring Boot (Référence)
[COMPLÉTÉ] MODULE 18 - Questions d'Entrevue
[COMPLÉTÉ] MODULE 19 - Dépôts GitHub (Références)
Commencez Maintenant!
Explorez les modules dans le menu latéral et commencez votre apprentissage de Spring Boot!
Bon cours et bon développement!
Dernière mise à jour: Mars 2025