1
Rappels sur la configuration Spring classique
- Configuration par fichiers XML, par annotations ou classes de configuration.
- Paramétrage de la configuration, utilisation des PropertyPlaceholder.
- Configuration de la couche de persistance, DataSource et EntityManagerFactory.
- Configuration de la couche métier et des transactions.
- Configuration de la couche web, Controller et RestController, Spring Security.
- Les tests unitaires et d’intégration : SpringTest, MockMvc.
Travaux pratiques
Appropriation d’une application Spring classique qui sera convertie en une application Spring Boot lors des chapitres suivants.
2
Initialisation d’une application Spring Boot
- L'écosystème Spring et la complexité de sa configuration.
- Principe de "convention over configuration".
- Starters et auto-configuration.
- Mise en œuvre de Spring Initializr, création d’une application web simple.
Travaux pratiques
Identifications des starters correspondant aux besoins, production du squelette de l’application Spring Boot en devenir.
3
Gestion des dépendances et de l’auto-configuration
- Organisation des dépendances Maven, gestion transparente des versions.
- Structuration du code, les bonnes pratiques.
- Rôle des annotations @SpringBootApplication et @EnableAutoconfiguation, la classe "application".
- Anatomie d’une classe d’auto-configuration, rôle des annotations @Conditionnal.
- Contrôle de l’auto-configuration, utilisation des fichiers de propriétés application.properties et application.yml.
- Création de ses propres classes d’auto-configuration.
Travaux pratiques
Réorganisation des packages de l’application existante, création d’une classe "application", contrôle de la configuration automatique aux besoins de l’application existante.
4
Concevoir une application Spring Boot
- Définition des profils.
- Configuration des traces : log4j2 versus logback.
- JPA et Spring Data JPA avec Spring Boot.
- Spring MVC avec Spring Boot.
- Configuration des infrastructures techniques “embedded” (base de données, conteneur de servlets).
- Configuration de la sécurité sur les API REST.
- Faciliter le développement à l’aide de Spring Boot DevTools.
Travaux pratiques
Mettre en œuvre les infrastructures techniques "embedded", maximiser l’auto-configuration.
5
Tester une application Spring Boot
- Auto-configuration des tests.
- Test de la persistance avec @DataJpaTest.
- Test d’intégration avec @SpringBootTest.
- Test des API REST avec @AutoConfigureMockMvc, @WebMvcTest et RestTemplate.
- Monitorer une application Spring Boot avec Actuator.
Travaux pratiques
Mettre à niveau les tests unitaires et d’intégration de l’application sur les nouvelles pratiques Spring Boot, monitorer l'utilisation des endpoints REST.
6
Packager et déployer une application Spring Boot
- Création d’un war pour un déploiement classique.
- Création d’un jar "self-contained" exécutable.
- Déploiement dans une image docker.
Travaux pratiques
Produire un jar auto-exécutable et le déployer sur une image docker.
7
Introduction à Spring Cloud et aux architectures micro-services
- Architecture distribuée et micro-services, patterns d’architecture micro-services.
- Tour d’horizon de Spring Cloud.
- Externaliser les configurations et gérer leurs versions avec Spring Cloud Config.
- Enregistrer et localiser dynamiquement des services avec Spring Cloud Netflix.
- Mettre en œuvre une répartition de charge avec Spring Cloud LoadBalancer.
- Créer une API Gateway avec ZUUL et sécuriser son accès avec Spring Security.
- Dernière ligne enlevée
Travaux pratiques
Rétro-conception d’une application monolithique en architecture de micro-services.