Public visé
Développeurs, architectes et chefs de projets techniques.
Prérequis
- Avoir suivi la formation “Java - Les fondamentaux de la programmation” ou posséder de solides connaissances du langage Java
- Compréhension de la plateforme Jakarta JEE
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Décrire le positionnement de Spring par rapport à Jakarta JEE
- Créer des applications à architecture en couches
- Implémenter la programmation orientée aspect
- Configurer le conteneur léger de Spring et utiliser les annotations
- Accéder aux données avec Spring JDBC et Spring ORM
- Développer des pages web avec Spring MVC
- Sécuriser les applications avec Spring Security
- Expliquer les bases de l’implémentation Spring Boot
- Identifier les différences entre Spring 5/6 et Spring Boot 2/3
- Migrer des applications de Spring 5 vers Spring 6
Programme
Jour 1 - Matin : Vue d’ensemble
- Origine et vision architecturale de Spring
- Inversion de contrôle / injection de dépendances
- Solutions apportées par Spring
- Évolution et compatibilité JDK/JEE
Jour 1 - Après-midi : Spring Core
- Construction d’instances et injection
- Annotations vs configuration
- SpEL (Spring Expression Language)
- Profils Spring
- Nommage des beans / factory
- Portées (scopes) et autowiring
- Contexte d’application
Jour 2 - Matin : Configuration Spring Boot
- Complexité de Spring
- Composants Starters
- Auto-configuration
- Spring Initializr pour applications web
Jour 2 - Après-midi : Fonctionnalités Spring Boot
- Organisation des dépendances
- Bonnes pratiques de développement
- Annotations @SpringBootApplication et @EnableAutoconfiguration
- Fonctionnalité de la classe application
- Contrôle de l’auto-configuration via fichiers properties/YAML
- Personnalisation des classes d’auto-configuration
Jour 3 - Matin : Accès aux données
- Patterns DAO et DTO
- Architecture et avantages de Spring Data
- Mapping JPA pour classes simples et relations (OneToMany, ManyToOne, ManyToMany)
- Implémentation de l’héritage
Jour 3 - Après-midi : Refactoring Spring Data
- Couche Repository
- Query Methods
- Requêtes personnalisées et natives
- Implémentation Named Query
- Gestion des transactions
- PlatformTransactionManager
Jour 4 - Matin : Développement Web
- Spring MVC
- Validation des beans
- Conversion et affichage
- Services RESTful
- WebSockets
- WebFlux et programmation réactive
Jour 4 - Après-midi : Spring Security
- Sécurité des applications web
- Protection des routes
- Définition des utilisateurs
- Configuration ACL