Description
Le Framework Spring permet d’écrire des applications d’entreprise Java avec un style allégé. Il propose un jeu complet de composants à la carte pour gérer les données d’une entreprise et les exploiter avec des applications web MVC, des web services ou des API Rest. La qualité est de mise avec la prise en charge des tests, l’inversion de contrôle des composants et la sécurité.
A l’issue de la formation, vous serez capable de mettre en œuvre le Framework Spring et les bonnes pratiques associées, dans les projets de développement d’applications.
Objectifs
- Comprendre le fonctionnement de Spring
- Connaître les bonnes pratiques de développement avec Spring
- Savoir configurer les composants d'une application avec Spring
- Implémenter un service d'accès aux données
- Gagner en efficacité avec Spring Boot
- Sécuriser l'application
Récapitulatif
Public
Développeurs Java, architectes Java SE / Java EE, chefs de projets techniques…
Prérequis
Bonnes connaissances du langage Java
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Comprendre le fonctionnement de Spring
- Rappel sur le Framework Spring, enjeux et objectifs
- Spring Boot, extension de Spring
- Installation de Spring Tools Suite (Eclipse)
- Maven ou Gradle
- Exemples de travaux pratiques : les participants réalisent un exercice et doivent installer la pile JEE nécessaire sur leur poste de développement, installer et configurer STS (Spring Tools Suite) pour améliorer la productivité.
Gagner en efficacité avec Spring Boot
- Identifier les principales dépendances du framework (data, web, …)
- Identifier les dépendances complémentaires utiles (drivers pour les bases de données, outils de build ou d'automatisation comme Lombok, ...)
- Enjeux liés à la gestion et cycle de vie des dépendances (versions, vulnérabilités, gestionnaires d'artefacts privés en entreprises)
- Les modes de configuration de Spring Boot (gestion des environnements, fichier properties ou yaml)
- Exemples de travaux pratiques : Trouver les dépendances utilisées à partir de start.spring.io, lancer l'exécution d'une première application Spring Boot.
Savoir configurer les composants d'une application avec Spring
- Annotations Spring
- Auto-Configuration, custom configurations
- Développement en couches : contrôleur, service, persistance
- Injection de dépendances
- Exemples de travaux pratiques : Création d'une application SpringBoot en utilisant les annotations spécifiques,
Création d'un CommandLineRunner pour inspecter les Beans créés Création d'un service simple, pour gérer l'injection dans un contrôleur.
Connaître les bonnes pratiques de développement avec Spring
- Comparaison rapide des modèles blocking I/O (Spring MVC) ou non blocking I/O (WebFlux)
- Principe MVC : Modèle Vue Contrôleur
- Ajouter Thymleaf aux dépendances
- Premier template
- Exemples de travaux pratiques : Création d'un contrôleur simple pour router vers un template de base. Modification d'un template.
Utiliser un moteur de template pour industrialiser la production des pages
- Syntaxe Thymleaf : conditions, itérations
- Passer le modèle à la vue
- Récupérer les données de la vue
- Exemples de travaux pratiques : Création d'un template conditonnel et itératif, passage du modèle à la vue : création d'un formulaire, récupération des données de la vue : implémentation d'un POST.
Implémenter un service d'accès aux données
- ORM Pattern
- Entities / Repositories avec différents types de requêtes (Spring Data functionnal queries methods, JPQL, native queries, appel de procédures stockées)
- Utilisation des couches : service, persistance
- Exemples de travaux pratiques : Création d'une simple table dans une base de données relationnelles, Création d'un service pour ajouter, modifier, supprimer des lignes dans la table.
Gérer les relations entre les entités et utiliser les dépôts de données
- Relations : ManyToOne, OneToMany, ManyToMany, OneToOne
- Récupération des entités : lazy ou eager
- Custom repositories
- Exemples de travaux pratiques : A partir du schéma simple précédent, ajouter des entités afin de répondre à une fonctionnalité donnée, créer un Custom Repository afin de répondre à une exigence de récupération de donnée non standard.
Travailler avec des bases orientées Documents
- Rappel sur le No-SQL
- Installation d'un serveur de données No-SQL,
- Création des entités
- Manipulation des collections
- Exemples de travaux pratiques : A partir du schéma simple précédent : configuration d'une application Spring Boot avec les dépendances nécessaires, création d'un « domaine » simple, exploitation d'un domaine en REST avec Postman, exécution d'une requête « géo-centrée ».
Mettre en place une architecture REST et produire une API
- Retour sur l'architecture RESTFul
- Configuration des endpoints d'API
- HTTP Requests / HTTP Responses / HTTP Statuses
- Implémentation du pattern DTO
- Mode synchrone ou asynchrone
- Aller plus loin avec la Programmation Orientée Aspects (AOP)
- Exemples de travaux pratiques : Création d'un contrôleur de type REST et définition des routes, utilisation des décorateurs pour récupérer les données en entrée des routes, création d'un DTO pour transformer les données en entrée ou en sortie.
Sécuriser l'application
- Objectifs et principes
- Authentification
- Autorisations
- Exemples de travaux pratiques : Création d'un contrôleur pour l'enregistrement d'un nouvel utilisateur, configuration des routes sans authentification, protection des routes avec une authentification de type JWT et Bearer.