J'ai compris que le framework Spring Batch traite les données en morceaux. Cependant, je pensais que lorsque la même fonctionnalité de segmentation peut être obtenue via Java pourquoi devons-nous opter pour le framework batch).
Quelqu'un pourrait-il me faire savoir s'il y a d'autres raisons d'aller au framework Spring Batch?
Permettez-moi de reformuler un peu votre question et de voir si cela y répond.
Que fournit Spring Batch que je devrais gérer moi-même lors de la création d'une application batch?
Spring Batch a servi de base à JSR-352 (la spécification Java batch) et depuis que cette spécification est sortie, il y a beaucoup de Spring Batch maintenant disponible dans le Java espace. Cela étant dit, il y a encore beaucoup de choses que Spring Batch fournit en dehors de la portée de ce que Java fait:
Dans un travail par lots "de base"
Dans le cadre d'un travail par lots simple, Spring Batch fournit une collection d'utilitaires et d'implémentations qui ont été testés au combat dans toutes les verticales d'entreprise. Quelques exemples sont:
ItemReader
et 15 ItemWriter
implémentations couvrant de vastes options d'entrée et de sortie (File, JDBC, NoSQL, JMS, etc.). Tous ces éléments fournissent des options d'E/S déclaratives afin que vous n'ayez pas à écrire et tester du code pour les lecteurs et les écrivains avec état.Tasklet
(équivalent de Spring Batch aux Batchlet
de JSR-352), y compris celles pour exécuter les commandes Shell et s'interfacer avec Hadoop.Avantages supplémentaires
Au-delà des exemples ci-dessus de ce que Spring Batch apporte à la table, il va beaucoup plus loin:
Personnellement, je considère le traitement par lots comme le modèle de programmation "définissez-le et oubliez-le". Bien qu'il ne soit pas sexy, le traitement par lots est un modèle de traitement très utile et est plus utile à certains endroits que la plupart des gens ne le pensent. Spring Batch fournit un environnement qui permet de développer des travaux par lots robustes aussi facilement que possible.