SPRING BOOTSPRING BOOT

-- Définition --

Spring Boot est un framework Java qui permet de créer des APIs REST et des backends complets sans passer des heures à configurer des fichiers XML. Il s'appuie sur Spring, mais retire la complexité du démarrage : en quelques annotations, une application tourne, expose des routes, communique avec une base de données. Pour un junior, c'est à la fois rassurant et structurant. Ce qui caractérise Spring Boot dans un contexte professionnel, c'est son architecture en couches : les contrôleurs reçoivent les requêtes HTTP, les services portent la logique métier, les repositories gèrent la persistance via Spring Data JPA. Cette organisation n'est pas optionnelle. Elle est dans l'ADN du framework. Elle pousse naturellement à écrire du code séparé, testable, et extensible sans tout remettre à plat à chaque nouvelle fonctionnalité. En 2025, Spring Boot a franchi la version 3.3, avec une compatibilité native avec Java 21 et ses virtual threads, ce qui améliore significativement les performances sur des applications à forte concurrence. Pour un développeur qui construit des backends destinés à tourner en production, ces évolutions ne sont pas anodines. Elles montrent que l'écosystème Spring continue d'évoluer activement, et que rester à jour sur ce framework est un effort continu, pas un acquis.

-- Mes preuves --

InnotechFusion était une étude de cas d’entrainement. L’énoncé était clair : délai serré, stack imposée, assurances qualité non négociables. Le backend Spring Boot devait exposer les routes nécessaires pour lister les membres de l'association et enregistrer l'action de vote de manière irréversible. La base de données MySQL a été conçue avec une structure volontairement simple pour la V1, accompagnée d'un schéma prévisionnel pour la V2 intégrant la gestion de plusieurs scrutins et l'enregistrement anonyme des votes. Des tests automatisés ont été écrits pour valider les comportements critiques : un membre ne peut pas voter deux fois, l'état persisté en base est cohérent avec ce que l'API retourne. Le backend a été Dockerisé, la pipeline CI/CD configurée, et la procédure de déploiement documentée dans le README. Projet réalisé seul, de A à Z, livré dans les conditions d'un examen. ShopWise était une étude de cas d’examen qui demandait une vraie réflexion de modélisation côté Spring Boot. Trois modules à implémenter : gestion des clients, gestion des rendez-vous avec filtrage dynamique, et module de fidélisation avec attribution automatique de points lorsqu'un rendez-vous est honoré. Chaque user story s'est traduite par des endpoints REST précis, des entités JPA mappées proprement, et des règles métier encapsulées dans des services dédiés. La couverture de tests backend a atteint le seuil requis de 60% sur les instructions et les branches. Tests unitaires sur les services, tests d'intégration sur les repositories et les contrôleurs via Spring Boot Test. La pipeline GitHub Actions a automatisé le build Maven, les tests, la génération des rapports de couverture et le push de l'image Docker sur DockerHub. Développé seul, de bout en bout, en conditions d’examen. PMT a été l'étude de cas la plus complexe côté logique métier. Inscription et connexion des utilisateurs, création de projets, invitation de membres, gestion des rôles avec permissions différenciées (administrateur, membre, observateur), création et assignation de tâches, historique des modifications, notifications par e-mail à l'assignation. Chaque fonctionnalité a impliqué une réflexion sur les relations entre entités et les contrôles à appliquer au niveau service. Spring Mail a été intégré pour les notifications. L'architecture a été pensée pour que l'ajout d'un rôle ou d'une règle de permission ne nécessite pas de toucher aux couches basses du code. La pipeline GitHub Actions a couvert le build, les tests avec rapport de couverture, et le déploiement des images Docker sur DockerHub. Là encore, développé seul, de la conception du schéma SQL jusqu'au déploiement conteneurisé.

-- Autocritique --

Spring Boot est la compétence backend la plus sollicitée sur l'ensemble de ces projets, et c'est aussi celle qui met le plus clairement en lumière ce qui reste à construire. Les bases sont là : API REST, mapping JPA, injection de dépendances, tests JUnit et Mockito, conteneurisation Docker. Ça fonctionne, ça a été livré, validé, en conditions d’examen. Ce qui manque, c'est la profondeur sur ce que les contextes académiques n'ont pas imposé. Spring Security était explicitement hors périmètre sur PMT et InnotechFusion. La gestion de l'authentification JWT, la sécurisation des endpoints par rôle, la configuration des filtres de sécurité : ce sont des sujets incontournables en production, et le niveau actuel dessus est insuffisant pour une mise en œuvre sérieuse sans documentation intensive. JPA, c'est pareil. Le mapping de base fonctionne, les relations entre entités aussi. Mais les problèmes classiques de N+1 requêtes, les stratégies LAZY vs EAGER, la gestion fine des transactions : ces sujets ont été rencontrés en pratique, parfois contournés plutôt que vraiment compris. C'est honnête de le reconnaître. Spring Boot reste la technologie backend de référence dans le profil actuel, celle qui apparaît sur tous les projets réalisés et qui sera au cœur des développements à venir. Le niveau permet de livrer. La prochaine étape, c'est de ne plus avoir à contourner.

-- Évolution --

Spring Security est la priorité numéro un. Chaque application réelle exposée à des utilisateurs a besoin d'une gestion sérieuse de l'authentification et des autorisations. JWT, OAuth2, gestion des rôles au niveau Spring : c'est ce qui manque le plus clairement dans le profil actuel, et c'est ce qui sera travaillé en premier sur les projets personnels à venir. La montée en niveau sur les tests d'intégration suit directement. Passer d'une couverture de 60% atteinte parce que l'examen le demandait à une couverture maintenue par conviction, c'est un changement d'état d'esprit autant que de pratique. Les tests ne sont pas une case à cocher. Écrire un test qui prouve qu'une règle métier tient, même après une refactorisation, c'est ça qui distingue du code jetable du code durable. Le terrain de progression principal, ce sera la société de développement logiciel en projet. Des applications fullstack réelles, avec de vrais utilisateurs, de vraies contraintes de sécurité et de performance : c'est dans ce cadre que Spring Boot prendra toute sa dimension. Chaque projet livré sera une itération supplémentaire vers une maîtrise qui va au-delà de ce qu'un examen peut évaluer.