Formation Spring Boot 4 – Programme 2 Jours

"Spring Boot 4 course

Posted by "Xavier Bouclet" on February 23, 2024 · 9 mins read

Formation Spring Boot 4 – Programme 2 Jours

1. Objectifs pédagogiques

À l’issue de la formation, les participants seront capables de :

  • Concevoir une API REST robuste avec Spring Boot 4

  • Structurer une application en couches (Controller / Service / Repository)

  • Gérer la persistance avec Spring Data JPA

  • Implémenter validation et gestion globale des erreurs

  • Sécuriser une API avec Spring Security

  • Écrire des tests unitaires et d’intégration

  • Préparer une application pour la production

2. Public cible

  • Développeurs Java ou Kotlin

  • Développeurs backend

  • Équipes techniques souhaitant standardiser leurs pratiques Spring

3. Pré-requis

  • Bonne maîtrise de Java opu Kotlin

  • Notions HTTP / REST

  • Maven ou Gradle

  • Java 21+ installé

  • IDE (IntelliJ / Eclipse / VS Code)

  • PostgreSQL installé ou accessible

4. Jour 1 – Fondamentaux & API REST

4.1. 1. Introduction & Architecture Spring Boot 4 (1h)

4.1.1. Objectifs

Comprendre l’écosystème Spring et les nouveautés de Spring Boot 4.

4.1.2. Contenu

  • Spring Framework vs Spring Boot

  • Nouveautés Spring Boot 4

  • Jakarta EE 10+

  • Auto-configuration

  • Starters et dépendances

  • Structure d’un projet

  • Architecture en couches

4.1.3. Démonstration

  • Génération d’un projet via Spring Initializr

  • Analyse de la structure du projet

4.2. 2. Création d’une API REST propre (1h30)

4.2.1. Objectifs

Construire une API maintenable et bien structurée.

4.2.2. Contenu

  • @SpringBootApplication

  • @RestController

  • Mapping HTTP (GET, POST, PUT, DELETE)

  • @PathVariable, @RequestParam

  • DTO vs Entity

  • Injection de dépendance

  • ResponseEntity

  • Bonnes pratiques REST

4.2.3. Atelier

Création d’une API CRUD Product.

4.3. 3. Configuration & gestion des environnements (45 min)

4.3.1. Contenu

  • application.yml

  • Profils (dev, test, prod)

  • @ConfigurationProperties

  • Variables d’environnement

  • Externalisation de la configuration

4.3.2. Atelier

Mise en place d’un profil dev et prod.

4.4. 4. Persistance avec Spring Data JPA (1h45)

4.4.1. Objectifs

Mettre en place une couche d’accès aux données robuste.

4.4.2. Contenu

  • Configuration datasource PostgreSQL

  • @Entity, @Id, @GeneratedValue

  • Relations (@OneToMany, @ManyToOne)

  • JpaRepository

  • Méthodes dérivées

  • Requêtes personnalisées (@Query)

  • Pagination et tri

  • Gestion des transactions

4.4.3. Atelier

Ajout des entités :

  • Product

  • Category

  • Relation entre les deux

Connexion à PostgreSQL et persistance réelle des données.

4.5. 5. Validation & gestion des erreurs (1h)

4.5.1. Contenu

  • Jakarta Validation (@NotNull, @Email, etc.)

  • @Valid

  • @ControllerAdvice

  • Gestion globale des exceptions

  • Format d’erreur standardisé

4.5.2. Atelier

Ajout de la validation et d’un gestionnaire global d’erreurs.

4.6. Bilan Jour 1

Application REST complète avec :

  • CRUD fonctionnel

  • Persistance PostgreSQL

  • Validation

  • Gestion d’erreurs propre

5. Jour 2 – Sécurité, Tests & Production

5.1. 6. Sécurité avec Spring Security (2h)

5.1.1. Objectifs

Sécuriser une API REST.

5.1.2. Contenu

  • Configuration SecurityFilterChain

  • Authentification Basic

  • Introduction JWT

  • Rôles et autorités

  • Gestion CORS

  • Désactivation CSRF pour API REST

5.1.3. Atelier

  • Endpoint public

  • Endpoint sécurisé

  • Ajout rôle ADMIN

5.2. 7. Tests avec Spring Boot (1h30)

5.2.1. Objectifs

Mettre en place une stratégie de test.

5.2.2. Contenu

  • JUnit 5

  • Mockito

  • @SpringBootTest

  • MockMvc

  • Tests repository

  • Tests d’intégration avec PostgreSQL (Testcontainers recommandé)

5.2.3. Atelier

  • Test de la couche service

  • Test d’un controller REST

5.3. 8. Application prête pour la production (1h)

5.3.1. Contenu

  • Spring Boot Actuator

  • Endpoints health et metrics

  • Logging (Logback)

  • Configuration des logs par profil

  • Packaging JAR

  • Dockerisation de l’application

  • Docker Compose avec PostgreSQL

5.3.2. Démonstration

  • Ajout Actuator

  • Création d’un Dockerfile

  • Exemple docker-compose.yml

5.4. 9. Architecture & bonnes pratiques (1h)

5.4.1. Contenu

  • Clean Architecture adaptée à Spring

  • Séparation DTO / Entity

  • Mapper (MapStruct)

  • Gestion des transactions

  • Organisation des packages

  • Bonnes pratiques d’industrialisation

5.4.2. Discussion

  • Monolithe vs microservices

  • Quand découper ?

6. Projet Fil Rouge

API e-commerce simplifiée :

6.1. Entités

  • User

  • Product

  • Category

  • Order

6.2. Fonctionnalités

  • CRUD produits

  • Création commande

  • Sécurisation des endpoints

  • Validation

  • Tests

  • Monitoring via Actuator

  • Base PostgreSQL

7. Répartition pédagogique

Théorie

35%

Démonstration

25%

Pratique

40%

8. Livrables

  • Support PDF

  • Code source complet

  • Version étape par étape

  • Exercices corrigés

  • Cheatsheet annotations Spring Boot

  • Dockerfile et docker-compose

9. Contact

Pour prendre cette formation, merci d’envoyer un courriel à xavier.bouclet@digitowls.com

10. Follow Me