0% ont trouvé ce document utile (0 vote)
6 vues3 pages

Spring Batch

Spring Batch est un framework conçu pour traiter des fichiers en batch, permettant de lire, traiter et écrire des données efficacement tout en gérant les erreurs et la reprise après échec. Un Job est composé de plusieurs Steps, incluant des phases de lecture, traitement et écriture des données par lots (chunks). La configuration d'un Job implique la définition des Readers, Processors et Writers, suivie de l'exécution via un JobLauncher.

Transféré par

nour el houda souissi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues3 pages

Spring Batch

Spring Batch est un framework conçu pour traiter des fichiers en batch, permettant de lire, traiter et écrire des données efficacement tout en gérant les erreurs et la reprise après échec. Un Job est composé de plusieurs Steps, incluant des phases de lecture, traitement et écriture des données par lots (chunks). La configuration d'un Job implique la définition des Readers, Processors et Writers, suivie de l'exécution via un JobLauncher.

Transféré par

nour el houda souissi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Spring Batch

🌟 C’est quoi Spring Batch ?


Imagine que tu dois traiter un grand fichier CSV de 1 million de lignes et insérer chaque
ligne dans une base de données.
👉 Si tu fais ça ligne par ligne, ça sera lent et risqué.
👉 Spring Batch est un framework qui t’aide à gérer ce type de traitement en batch (lot) :

 Lire (Read)
 Traiter (Process)
 Écrire (Write)
Le tout avec gestion des erreurs, logs, reprise après échec, parallélisation, etc.

🏗️Les étapes d’un Job Spring Batch


Un Job dans Spring Batch est composé de Steps (étapes).
Chaque Step suit souvent le modèle chunk-oriented processing :

1. Job

 C’est le conteneur principal qui regroupe toutes les étapes.


 Exemple : "Importer des clients depuis un fichier".

2. Step

 Chaque job est découpé en steps.


 Exemple :
o Step 1 : Lire le fichier CSV.
o Step 2 : Valider et transformer les données.
o Step 3 : Sauvegarder dans la base.

3. Reader (Lecture)

 Permet de lire la donnée depuis une source (CSV, XML, DB, API...).
 Exemple : FlatFileItemReader pour lire un CSV.

4. Processor (Traitement)

 Permet de transformer ou filtrer la donnée.


 Exemple :
o Nettoyer un champ texte.
o Vérifier qu’un email est valide.
o Ignorer une ligne si elle est corrompue.

5. Writer (Écriture)

 Permet d’écrire les données traitées dans une destination (DB, autre fichier, etc.).
 Exemple : JdbcBatchItemWriter pour insérer dans une base MySQL.

6. Chunk (Lot)

 Spring Batch ne traite pas ligne par ligne, mais par lots (chunks).
 Exemple : chunk(100) → lit 100 lignes, les traite, puis les écrit en une seule fois
(meilleure performance).

7. JobRepository

 C’est la mémoire de Spring Batch.


 Il stocke l’état du job (succès, échec, où il s’est arrêté).
 Grâce à ça, si ton traitement plante à la ligne 500 000, tu peux reprendre là où tu t’es
arrêté.

8. JobLauncher

 C’est le déclencheur qui démarre le job.

📌 Exemple simple : Lire un CSV et insérer en DB


@Configuration
@EnableBatchProcessing
public class BatchConfig {

@Bean
public FlatFileItemReader<Client> reader() {
return new FlatFileItemReaderBuilder<Client>()
.name("clientReader")
.resource(new FileSystemResource("[Link]"))
.delimited()
.names("id", "nom", "email")
.targetType([Link])
.build();
}

@Bean
public ItemProcessor<Client, Client> processor() {
return client -> {
[Link]([Link]().toUpperCase()); // transformation
return client;
};
}

@Bean
public JdbcBatchItemWriter<Client> writer(DataSource dataSource) {
return new JdbcBatchItemWriterBuilder<Client>()
.dataSource(dataSource)
.sql("INSERT INTO client (id, nom, email) VALUES
(:id, :nom, :email)")
.beanMapped()
.build();
}

@Bean
public Step step1(StepBuilderFactory stepBuilderFactory,
ItemReader<Client> reader,
ItemProcessor<Client, Client> processor,
ItemWriter<Client> writer) {
return [Link]("step1")
.<Client, Client>chunk(100)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}

@Bean
public Job importClientJob(JobBuilderFactory jobBuilderFactory, Step
step1) {
return [Link]("importClientJob")
.start(step1)
.build();
}
}

🚀 Résumé des étapes d’un Job Spring Batch


1. Configurer le Job
2. Créer les Steps
3. Définir le Reader (lecture des données)
4. Définir le Processor (transformation/validation)
5. Définir le Writer (écriture des données)
6. Assembler le tout avec un chunk
7. Exécuter le Job avec le JobLauncher

Vous aimerez peut-être aussi