Orchestrer des traitements de données avec Spring Batch
Les batchs sont des programmes que l'on retrouve dans de nombreuses organisations. Workflows complexes, reprise après incident, lecture-transformation-écriture de données, stratégies de réessais, détection d'anomalies...: ce sont autant de sujets qui mêlent règles métiers et exigence de performance et auxquels Spring Batch propose une solution.
Ce cours vous permettra d'apprendre les concepts qui structurent un batch et de les mettre en oeuvre avec Spring Batch.
(7 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:- définir et lancer un
Job
Spring Batch; - orchestrer des workflows complexes;
- déclarer des tasklet step et des chunk oriented step;
- appliquer des stratégies de réessais.
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), de Spring et Spring boot et 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
- Présentation des concepts et des cas d'utilisation.
- La base de données de suivi des jobs utilisée par Spring Batch.
- Le rôle des beans créés automatiquement par Spring boot (
JobLauncher
,JobRepository
...)
Mise en pratique: création d'un projet Spring Boot en vue de développer un Job Spring Batch, création de la base de suivi des jobs.
Définition d'un Job
- Un
Job
comme ensemble de flows et de steps. - Les workflows séquentiels.
- Les workflows conditionnels.
- Les workflows parallèles.
- Les statuts possibles d'un
Job
. - les scopes
JobScope
etStepScope
. - Bonnes pratique d'organisation du code.
Mise en pratique: création d'un Job
simple.
Lancement d'un job
- La transmisssion des paramètres (
JobParameters
). - Lancement en ligne de commande.
- Lancement par une planification Spring.
- Lancement depuis un test avec
spring-batch-test
.
Mise en pratique: exécution du Job
défini précédemment depuis la méthode
main
et
depuis un test.
Définition d'un Step
- la démarcation transactionnelle.
- L'accès aux
JobParameters
. - les chunk oriented step et ses composants:
ItemReader
,ItemProcessor
,ItemWriter
. - les tasklet steps.
- La tolérance aux erreurs (skip, retry).
- Les listeners.
Mise en pratique: ajout de chunk oriented steps et de tasklet steps au
Job
créé précédemment, application d'une stratégie de rééssais et déclaration de
listeners.
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).