Ce livre apporte les éléments clés pour se repérer dans les différentes technologies utilisées dans les projets basés sur Spring. Il prend en compte les différences de configuration liées aux versions de Spring (en version 4.3 et 5.3 au moment de l’écriture) et se base sur des exemples concrets d’utilisation. Il permet au lecteur d’être très rapidement autonome sur un projet d’entreprise qui utilise Spring, que ce soit au début d’un...
Ce livre apporte les éléments clés pour se repérer dans les différentes technologies utilisées dans les projets basés sur Spring. Il prend en compte les différences de configuration liées aux versions de Spring (en version 4.3 et 5.3 au moment de l’écriture) et se base sur des exemples concrets d’utilisation. Il permet au lecteur d’être très rapidement autonome sur un projet d’entreprise qui utilise Spring, que ce soit au début d’un nouveau projet ou pour maintenir un projet existant : compréhension du noyau, accès aux données, maîtrise de la couche web. Des connaissances sur le développement Java et notamment le développement d’applications web sont un prérequis indispensable pour tirer le meilleur parti possible du livre.
L’auteur présente tout d’abord les éléments simples et courants de Spring (la configuration, les contextes, les librairies tiers) et explique ensuite certains aspects plus complexes que l’on rencontre souvent dans les projets (Ressources, Bindeurs, Validateurs, Convertisseurs et Tests). La programmation par aspects est expérimentée, les applications web Spring MVC et les Web Services sont détaillés avec les tests unitaires associés. L’auteur présente les nouveautés Spring Boot, Kotlin avec Angular, les applications orientées messages et Spring Batch, une introduction à Reactor et Web- Flux et une description de la partie Spring d’un projet généré à partir de JHipster afin d’illustrer une mise en oeuvre très actuelle ainsi qu’une présentation de l’utilisation de GraphQL avec Spring.
Tout au long des chapitres, l’auteur s’appuie sur des exemples fonctionnels afin de permettre l’expérimentation au plus tôt par le lecteur. Dans ce but, des éléments sont en téléchargement sur le site www.editions-eni.fr.
11.1 Utilisation de Redis pour le cache de données
11.2 Utilisation de Redis pour gérer des messages
12. MongoDB
12.1 MongoDB avec Spring Boot
12.2 MongoDB avec une API REST
13. Points clés
Spring Batch
1. Introduction
2. Architecture d’un batch
3. Exemple Spring Batch version 4
4. Chargeur H2 depuis un CSV
5. Dépendances Spring Batch 3 et 4
6. Autres nouveautés de la version 4
7. Évolutions des batchs
8. Points clés
Les intergiciels à messages (MOM)
1. Introduction
2. Implémentations open source
3. Implémentations propriétaires
4. Les cas d’utilisation
5. JMS et ActiveMQ
6. RabbitMQ
6.1 Spring AMQP et RabbitMQ
6.2 Exemple RabbitMQ
7. Points clés
Spring et Kotlin
1. Introduction
2. Caractéristiques principales du langage Kotlin
2.1 Les méthodes et les fonctions
2.2 L’immutabilité des objets
2.3 Les types
2.4 La gestion des valeurs nulles
2.5 Les appels chaînés sécurisés
2.6 Les lambdas
3. Contrôleur Spring MVC, Spring Boot en Kotlin
3.1 Fonction principale
3.2 Test associé à la fonction principale
4. Les plugins
5. Points clés
Introduction à Spring Reactor et Spring Webflux
1. Introduction
2. Spring Reactor
2.1 Présentation
2.2 Utilisation de Reactor Core
2.2.1 Les threads
2.2.2 Les FutureTask
2.2.3 Le CompletableFuture
2.2.4 Flux et Mono
2.3 Les tests
2.3.1 Vérifications avec StepVerifier
2.3.2 Emissions manuelles avec TestPublisher
3. WebFlux
3.1 Définition du terme réactif
3.2 Les couches réactives
3.2.1 la couche contrôleur
3.2.2 La couche des services
3.2.3 La couche repository
3.2.4 Repository reactif R2DBC
4. Client réactif
5. Les tests avec WebFlux
5.1 Tests unitaires
5.1.1 Tests unitaires avec des applications réactives
5.1.2 Utilisation de MockWebServer
5.2 Tests d'intégration
6. Server Site Event avec Spring
7. Pour aller plus loin
8. Points clés
Spring et JHipster
1. Introduction
2. Généralités
2.1 JHipster web
2.2 Personnalisation de l’outil JHispter
2.3 Niveaux de personnalisations
3. Créer un blueprint
3.1 Blueprint pour utiliser lombok dans le domain
3.2 Exécution du blueprint local
4. JHipster comme outil multi-technologies
4.1 Côté client
4.2 Côté serveur
4.3 Côté déploiement
4.4 Côté Spring
5. Structure du projet
5.1 La partie front
5.2 Les grandes lignes de la partie back
5.2.1 Spring Boot
5.2.2 La classe serveur HTTP/servlet
6. JHipster et WebFlux
6.1 Configuration DatabaseConfiguration
6.2 Configuration DateTimeFormatConfiguration
6.3 Configuration LocaleConfiguration
6.4 Configuration ReactorConfiguration
6.5 Configuration SecurityConfiguration
6.6 Configuration WebConfigurer
6.7 Les tests
7. Points clés
Utilisation de GraphQL
1. Introduction
2. Le schéma
2.1 La section Query
2.2 La section Mutation
3. Intégration de GraphQL dans Spring
4. L’extension Spring Data Querydsl
5. Les contrôleurs GraphQL
6. Autoconfiguration
6.1 Version HTTP
6.2 Le Service GraphQlService
6.3 Le RuntimeWiringConfigurer
6.4 Gestion des erreurs
7. Conclusion
8. Points clés
Nouveautés de Spring
1. Le futur de Spring
2. Prise en charge des modules Java
3. Spring Native
4. Project Leyden
5. Spring Observability
6. Obsolescence programmée
Index
Hervé LE MORVAN
Hervé LE MORVAN est aujourd'hui consultant DevOps pour de grands comptes de la Banque, de l'Assurance et des Telecoms. Durant ses vingt années d'expérience, il est principalement intervenu en tant que référent technique et formateur dans des équipes de Recherches et Développement ou d'Architectes et en tant que support au développement d’applications sur des missions de migration ou de modernisation de Systèmes d'Informations. À ce titre, il est intervenu dans de nombreux projets de migrations utilisant le socle Spring et connaît parfaitement les attentes des équipes dans ce domaine. C’est toute cette expérience qu’il partage volontiers tout au long des pages de ce livre.