mercredi 20 février 2013

Java pour développeur !

1) Quelles différences entre ArrayList et Vector ? Vector est thread-safe donc synchronisée. ArrayList n'est pas synchronisée. L'attribut capacity de Vector est initialisé à 10 lors de l'instanciation et 0 pour celui de ArrayList
2) Un méthode static peut être redéfinie mais ne peut pas être surchargée.

mardi 19 février 2013

Spring Batch : concepts avancés

Après une brève présentation des concepts fondamentaux de Spring Batch, je vous présente ici les concepts avancés.

Spring Batch : Les concepts

Spring Batch est un framework pour développer des Batch  en JAVA. Un Batch peut être défini comme un traitement par lot d’une grande quantité de données.

Les concepts :

Job : Il s’agit ici du traitement proprement dit du Batch. Batch et Job sont deux concepts identiques. On peut citer un exemple (donneesQuotidiennes) : un batch quotidien permettant de lire, modifier et écrire des données provenant d’un fichier plat vers une base de données). Ce type de Batch peut être lancé de façon manuelle ou par de programme comme cron ou Quartz.

Step (Étape) : Un Job (Batch) est constitué d’un ensemble d’étapes (Step). Dans l’exemple du Batch donneesQuotidiennes, une étape peut être la lecture de données, une deuxième étape la transformation de données et enfin une dernière étape l’écriture de données.

JobInstance : Pour gérer l’historique d’un Job, on parle de JobInstance. Nous pouvons ainsi parler du Job du 15 Septembre pour le Batch donneesQuotidiennes, ou du 16 Octobre, …Cela permet d’identifier un Job et de garder son historique afin de pouvoir revenir en arrière en cas de problème. L’identifiant d’un Job peut être passé comme paramètre appelé JobParameters.

JobExecution : Lorsqu’on lance un Batch, des erreurs peuvent survenir. Dans ce cas, il faut relancer le Batch. Ce processus est à répéter jusqu’à ce que le Batch s’exécute correctement. Chaque instance d’exécution (lancement) d’un Batch est appelée JobExecution. Un Batch peut donc avoir plusieurs JobExecution (autant de fois que l’exécution du Batch échoue) ou une seule (si l’exécution du Batch s’effectue correctement à la première fois).