Comment obtenir de l'Emploi paramètres à l'élément de processeur à l'aide de spring Batch annotation
Je suis à l'aide de spring MVC. De mon contrôleur, je fais appel jobLauncher
et dans jobLauncher
je suis de passage de paramètres de travail comme ci-dessous et je suis à l'aide d'annotations pour activer la configuration comme ci-dessous:
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
//read, write ,process and invoke job
}
JobParameters jobParameters = new JobParametersBuilder().addString("fileName", "xxxx.txt").toJobParameters();
stasrtjob = jobLauncher.run(job, jobParameters);
and here is my itemprocessor
public class DataItemProcessor implements ItemProcessor<InputData, OutPutData> {
public OutPutData process(final InputData inputData) throws Exception {
//i want to get job Parameters here ????
}
}
OriginalL'auteur Mare | 2015-07-31
Vous devez vous connecter pour publier un commentaire.
1) Mettre une annotation portée sur votre processeur de données c'est à dire
2) Faire une instance de classe dans votre processeur de données et d'injecter de l'emploi valeur du paramètre en utilisant la valeur de l'annotation :
Final de votre processeur de Données de classe va ressembler:
Dans le cas où votre processeur de données n'est pas initialisé comme un haricot, mettre un @Composante annotation:
si votre processeur est configuré dans un fichier XML, vous devez ajouter le champ d'application, comme: <bean id="myProcessor" class="mon.package.MyProcessor" scope="étape"/>
est-il possible de définir un type de liste de paramètres de travail et la liste dans la rubrique processeur ?
Ne devrait-elle pas être
@StepScope
plutôt que@Scope(value = "step")
?OriginalL'auteur Amit Bhati
Une meilleure solution (à mon avis) qui évite à l'aide du Printemps hacky expression de la langue (SpEL) est à autowire la
StepExecution
contexte dans votre processeur à l'aide de@BeforeStep
.Dans votre processeur, ajouter quelque chose comme:
La
@BeforeStep
annotationOriginalL'auteur heez