Aller au contenu principal

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 :

ModuleQuizSujet
2Quiz Module 2Premiers pas, Spring Initializr, annotations de base
3Quiz Module 3Architecture en couches, CRUD, validation
4Quiz Module 4PostgreSQL, Jakarta Persistence, Hibernate, Lombok
5Quiz Chapitre 1IoC et injection de dépendances
5Quiz Chapitre 2Types d'injection, @Qualifier
5Quiz Chapitre 3Beans et contexte Spring
5Quiz Chapitre 4Scopes et configuration
6Quiz Module 6JPA avancé, conventions, relations, @Query
7Quiz Module 7Datasources, transactions, Flyway
8Quiz Module 8Spring Security, JWT, OAuth2
9Quiz Module 9Tests unitaires, intégration, MockMvc
10Quiz Module 10Exceptions, logging, Logback
11Quiz Module 11Actuator, Prometheus, Grafana
12Quiz Module 12Docker, CI/CD, déploiement
13Quiz Module 13Microservices, Eureka, Gateway
14Quiz Module 14Cache Redis, RabbitMQ, WebSocket

Chapitre 2 — Liste des Travaux Pratiques​

Tous les TPs du cours, organisés par module :

Module 1 — Introduction​

TPSujetDurée
TP1.1Installation de Java JDK 17 (Windows, macOS, Linux)20-30 min
TP1.2Installation de Maven 3.9.x (Windows, macOS, Linux)30-45 min

Module 2 — Premiers Pas​

TPSujetDurée
TP2.1Application "Greeting" avec Spring Boot1-2h
TP2.2Base de données H2 (mémoire et persistance)1-2h

Module 3 — Architecture en Couches et CRUD​

TPSujetDurée
TP3.1Architecture CRUD complète (guidé avec code)4-6h
TP3.2CRUD autonome — même énoncé, sans code (défi)2-3h

Module 4 — Bases de Données en Production​

TPSujetDurée
TP4.1Migration PostgreSQL avec Jakarta Persistence2-3h

Module 5 — Spring Core (IoC / DI)​

TPSujetDurée
TP5.1Injection de dépendances avancée1-2h
TP5.2Gestion des beans et scopes1-2h
TP5.3Configuration et profils1-2h

Module 6 — JPA Avancé​

TPSujetDurée
TP6.1Conventions de nommage avancées2h
TP6.2Relations Employee-Department2-3h
TP6.3Exercice Airport-Flight-Passenger3-4h

Module 7 — Transactions et Migrations​

TPSujetDurée
TP7.1Configuration Datasource1-2h
TP7.2Transactions et Rollback2h
TP7.3Migration avec Flyway1-2h

Module 8 — Spring Security​

TPSujetDurée
TP8.1Authentification par formulaire1-2h
TP8.2Authentification JWT2-3h
TP8.3Rôles et permissions2h
TP8.4OAuth2 avec Google2h

Module 9 — Tests​

TPSujetDurée
TP9.1Tests unitaires du Service Layer2h
TP9.2Tests d'intégration des Repositories2h
TP9.3Tests REST API avec MockMvc2h

Module 10 — Exceptions et Logging​

TPSujetDurée
TP10.1Gestion centralisée des erreurs2h
TP10.2Système de logging professionnel1-2h

Module 11 — Monitoring​

TPSujetDurée
TP11.1Configuration Actuator1-2h
TP11.2Monitoring Prometheus et Grafana2-3h

Module 12 — Déploiement​

TPSujetDurée
TP12.1Dockerisation complète2-3h
TP12.2Pipeline CI/CD et déploiement2-3h

Module 13 — Microservices​

TPSujetDurée
TP13.1Eureka Server et clients2h
TP13.2Config Server1-2h
TP13.3API Gateway2h
TP13.4Feign et Resilience4j2-3h

Module 14 — Techniques Avancées​

TPSujetDurée
TP14.1Cache avec Redis2h
TP14.2Messaging avec RabbitMQ2h
TP14.3WebSocket temps réel2h
TP14.4Tâches planifiées1-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