Développement logiciel
Créer des microservices avec Java et Spring Boot
Programme centré sur la construction, destiné aux équipes qui livrent des services avec Spring Boot. En cinq jours, les participants développent des API REST avec validation, persistance et configuration externalisée, puis ajoutent résilience, observabilité et packaging conteneurisé jusqu'à ce que le service tourne ailleurs qu'en local.
Aperçu
Un apprentissage pratique pour le transfert en situation de travail.
Spring Boot rend le premier service facile et le cinquième dangereux. Les équipes accumulent des services qui partagent discrètement une base, s'appellent en chaînes synchrones, journalisent dans trois formats et échouent sans que la requête soit traçable. Ce programme construit un service correctement dès le premier commit : configuration et profils, validation des requêtes, persistance transactionnelle, contrat d'erreur cohérent, délais et reprises, journalisation corrélée, points de santé et de métriques, image conteneur dimensionnée pour la production. Frontières de service et propriété des données y sont des décisions prises en amont, non des détails découverts plus tard.
Prérequis
Solide expérience du développement Java et familiarité avec HTTP et les bases de données relationnelles. Une exposition préalable à Spring est utile mais non exigée.
Objectifs
- Construire un service Spring Boot avec des endpoints REST en couches, de la validation et des réponses d'erreur cohérentes.
- Externaliser la configuration avec profils et propriétés tout en gardant les secrets hors du code source.
- Mettre en oeuvre la persistance avec Spring Data JPA, des frontières transactionnelles explicites et des migrations de schéma pilotées.
- Appliquer délais, reprises et disjoncteurs pour qu'une dépendance lente ne fasse pas tomber la plateforme.
- Instrumenter les services avec journaux structurés, métriques, contrôles de santé et traçage distribué.
- Définir des frontières de service et des contrats inter-services autorisant des déploiements indépendants.
Public cible
- Développeurs backend Java construisant ou maintenant des services Spring Boot
- Architectes logiciels définissant frontières de service et contrats d'intégration
- Ingénieurs plateforme et DevOps packageant et exploitant des charges Java
- Développeurs d'API responsables des contrats REST publics et internes
- Équipes décomposant une application Java monolithique en services déployables
- Responsables techniques fixant des standards de service pour plusieurs équipes de livraison
Programme
Une structure claire pour le parcours d'apprentissage.
Programme
Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.
Module 1 : Fondations et configuration de Spring Boot
Injection de dépendances, scan de composants et auto-configuration expliqués
Propriétés applicatives, profils et configuration propre à chaque environnement
Secrets externalisés et configuration variant sans risque d'un environnement à l'autre
Structure de projet, starters et réduction de la surface de dépendances
Module 2 : API REST, validation et contrats d'erreur
Conception des ressources, sémantique HTTP et versionnage suivable par les clients
Modèles de requête et de réponse encadrés par les contraintes Bean Validation
Gestion centralisée des exceptions et charge utile d'erreur prévisible
Documentation d'API générée depuis le code et maintenue fidèle dans le temps
Module 3 : Persistance, transactions et propriété des données
Dépôts Spring Data JPA, méthodes de requête et problème du N+1
Frontières transactionnelles, propagation et isolation dans le code de service
Migrations de schéma avec Flyway ou Liquibase dans le pipeline de déploiement
Une base par service : ce qui change quand les tables ne peuvent plus être jointes
Module 4 : Frontières de service et communication
Découper par capacité métier plutôt que par couche technique
Appels REST synchrones, couplage induit et propagation des défaillances
Messagerie asynchrone, ordre des événements et compromis de cohérence à terme
Tests de contrat entre services producteurs et consommateurs
Module 5 : Résilience et comportement en production
Délais, pools de connexions et usage borné des threads sur chaque chemin d'appel
Reprises, backoff, idempotence et prévention des tempêtes de reprises
Disjoncteurs, cloisonnement et dégradation gracieuse assumée
Les threads virtuels et leur effet sur les charges de service bloquantes
Module 6 : Observabilité, packaging et déploiement
Journalisation structurée portant identifiants de corrélation et de trace
Métriques applicatives avec Micrometer et contrôles de santé avec Actuator
Traçage distribué à travers les sauts de service et les frontières asynchrones
Images conteneur, builds en couches, limites de ressources et réglage du démarrage
Supports fournis
- Manuel de formation, exemples de code commentés et notes de référence
- Environnement de laboratoire et dépôts de démarrage
- Exercices, check-lists et modèles de code réutilisables
- Certificat de participation 4D
- Accompagnement technique après la formation
Options de formation
Les programmes peuvent être organisés en entreprise, en ligne ou dans un format hybride selon le calendrier, la localisation et les objectifs de vos équipes. Lorsqu'un certificat ou un examen externe est inclus, les règles et frais de certification restent soumis aux politiques de l'organisme certificateur, tandis que 4D assure la formation et l'accompagnement à la préparation.
Pourquoi choisir 4D
4D anime ce programme comme une construction et non comme une série de cours : au cinquième jour, les participants disposent d'un service Spring Boot instrumenté, fonctionnel et conteneurisé. Les formateurs apportent la vision d'exploitation, si bien que délais, traçage et dimensionnement d'image sont décidés selon les attentes de votre équipe plateforme pour des charges Java en production.
Formations liées
Fondamentaux de la programmation Python
Une introduction pratique à Python pour les ingénieurs et analystes qui ont besoin de code opérationnel plutôt que d'extraits de tutoriel. Les participants acquièrent de l'aisance avec les types, les collections, les fonctions, les fichiers et la gestion des erreurs, puis construisent un programme complet.
View coursePython intermédiaire et pratiques de code propre
Conçue pour les développeurs dont le code Python fonctionne mais résiste au changement. Le programme couvre dataclasses, générateurs, décorateurs, gestionnaires de contexte et annotations de types, puis applique les refactorings qui transforment un module interminable en unités testées contrôlées par black, ruff et mypy.
View courseAutomatisation et scripting Python pour les tâches métier
Destinée aux équipes qui perdent chaque semaine des heures en manipulations de fichiers, de tableurs et de rapports. Les participants automatisent ces tâches avec Python : traitement de fichiers en lot, Excel et CSV, appels d'API REST, alertes par e-mail et tâches planifiées qui signalent clairement toute défaillance.
View course