Concevoir et développer des applications avec Spring
Le framework Spring est apparu en 2002 comme une alternative à ce qui s'appelait à l'époque J2EE. Il a démocratisé l'injection de dépendances en Java et propose une offre complète et cohérente pour réaliser des applications backend: accès aux données, transactions, tests, AOP (aspect oriented programming), échanges HTTP (REST, MVC). Spring Boot, apparu en 2014 est incontournable, il apporte une facilité pour développer et déployer des applications Spring.
Ce cours vous permettra de maitriser tous ces aspects du framework.
(28 heures)
Développeurs et développeuses Java, architectes
Accessible aux personnes en situation de handicap
DélaiLe cours peut être organisé dans un délai d'un mois.
Objectifs
A l'issue du cours vous saurez:- mettre en œuvre le couplage faible par application de l'injection de dépendances;
- appliquer des intercepteurs et utiliser la programmation orientée aspect (AOP);
- maîtriser la configuration automatique de Spring Boot;
- accéder aux données d'une base de données relationnelle;
- appliquer des transactions pour garantir la cohérence d'un système;
- créer les endpoints d'une API REST avec Spring MVC;
- implémenter un frontend MVC avec Spring MVC.
Prérequis
Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), une habitude de travailler avec Eclipse ou IntelliJ.
Méthodes pédagogiques
- Explication, pour chaque concept, du problème qu'il prétend résoudre.
- Mise en pratique d'un concept immédiatement après qu'il ait été présenté.
- Validation de chaque étape par exécution de tests unitaires.
- Exercice « fil rouge » pour obtenir en fin de cours une application complète.
- QCM en fin de chapitre pour s'assurer de l'acquisition des connaissances.
Programme détaillé
Introduction
- Rappel des bonnes pratique de conceptions.
- Les patterns au coeur du framework Spring: singleton, prototype, strategy, proxy, factory.
- Les composants essentiels du framework Spring: core, accès aux donnés, webmvc.
- Relation entre Spring framework et Spring boot.
- L'environnement de développement.
- Les stratégies de déploiement: JAR, image OCI, application native.
Gestion des beans avec Spring Core
- L'
ApplicationContext
. - Déclaration d'un bean Spring.
- Les profiles et l'annotation
@Conditional
. - L'injection de dépendances.
- L'accès aux propriétés.
- Les callbacks.
- Tests d'un bean Spring, couplage avec Junit.
- Planification.
- Supervision avec JMX.
- Les intercepteurs: cache, transaction, AOP.
- La configuration automatique.
Mise en pratique: créer une application n-tiers avec Spring Core et Spring boot.
Accès aux données et gestion des transactions
- Rappels, bonnes pratiques (I/O non bloquantes, principes ACID, pool de connexions, théorème CAP).
- L'apport de Spring: l'implémentation du pattern unit of work.
- L'accès aux bases relationnelles avec le
JdbcClient
. - Le couplage avec Jakarta persistance API (JPA).
- La démarcation transactionnelle avec le
PlatformTransactionManager
. - Introduction à Spring Data.
Mise en pratique: accéder aux données d'une base relationnelle avec Spring, appliquer des transactions.
API REST avec Spring MVC
- Utilisation du serveur web embarqué.
- Activation des I/O non bloquantes avec les virtual threads.
- Bonnes pratiques de conception d'une API REST.
- L'écriture d'un contrôleur.
- La validation.
- La gestion des exceptions.
- Les tests d'une API REST avec
MockMVC
.
Mise en pratique: développer une API exposant la couche métier développée précédemment, consommation des web services REST par un frontend HTML/JavaScript.
IHM server side avec Spring MVC
- Les vues, le rôle du template engine.
- Le modèle.
- La gestion des exceptions.
- La validation.
- L'internationalisation des messages.
Mise en pratique: réaliser un frontend MVC pour exposer la couche métier développée précédemment.
Prix et financements
2 12
Réduction de 50% pour les associations reconnues d'utilité publique.
Sources de financements pour les organisations françaises:
- prise en charge tout ou partie du coût de la formation par votre opérateur de compétence (OPCO);
- Le dispositif FNE formation si votre organisation est éligible.
- Le plan de développement des compétences de votre entreprise (renseignez-vous auprès de votre service RH).