https://github.com/dohabanoui/batch-processing-springbatch
L'objectif est de créer un job Spring Batch qui traite des commandes à partir d'un fichier CSV.
https://github.com/dohabanoui/batch-processing-springbatch
batch-job batch-processing spring-batch
Last synced: 10 months ago
JSON representation
L'objectif est de créer un job Spring Batch qui traite des commandes à partir d'un fichier CSV.
- Host: GitHub
- URL: https://github.com/dohabanoui/batch-processing-springbatch
- Owner: dohabanoui
- Created: 2024-12-23T01:14:52.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-14T13:57:42.000Z (12 months ago)
- Last Synced: 2025-01-26T11:14:25.881Z (12 months ago)
- Topics: batch-job, batch-processing, spring-batch
- Language: Java
- Homepage:
- Size: 385 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Batch Project: Traitement des Commandes
## Description
Ce projet a pour objectif de créer un job **Spring Batch** qui traite une liste de commandes provenant d'un fichier **CSV**. Chaque commande contient un identifiant, un nom de client et un montant. Le job applique une remise sur le montant des commandes et enregistre les données mises à jour dans une base de données.
### Fonctionnalités principales :
- Lecture des données à partir d'un fichier CSV.
- Application d'une remise sur le montant de chaque commande.
- Sauvegarde des commandes mises à jour dans une base de données relationnelle.
- Gestion du traitement à l'aide de Spring Batch (steps et jobs).
## Structure du projet
- **BatchConfiguration.java** : Configure les étapes et le job Spring Batch.
- **OrderItemProcessor.java** : Contient la logique pour appliquer une remise sur les montants des commandes.
- **JobCompletionListener.java** : Écoute les événements de fin de job pour afficher les résultats.
- **Order.java** : Représente une commande (record immuable).
- **orders.csv** : Fichier d'entrée contenant les commandes à traiter.
Exemple de fichier CSV (`orders.csv`):
```csv
orderId,customerName,amount
1,John Doe,100.0
2,Jane Smith,200.0
3,Michael Brown,300.0
4,Emily Davis,400.0
```
**Execution du job**
Lorsque vous lancez le job, il lira le fichier CSV, appliquera une remise sur le montant des commandes, puis enregistrera les commandes mises à jour dans la base de données.
Voici un aperçu de l'exécution du job avec les logs de traitement des commandes :

