J'essaie d'écrire un travail Spring Batch qui comporte deux étapes. Ils sont tous les deux la même étape mais avec des emplacements de fichiers différents. En tant que tel, j'ai besoin de passer plusieurs ficelles dans le haricot de travail pour laisser l'étape savoir où envoyer les différents fichiers. Cependant, si j'essaie de transmettre les valeurs Resource, j'obtiens une exception NoSuchBeanDefinitionException. Les réponses que j'ai trouvées à ceci est que j'ai besoin d'ajouter un @Value au bean pour lui dire que les beans ont besoin d'un paramètre pour fonctionner. Mais c'est pour une seule valeur.Passage de @Value multiple dans un @Bean dans une classe java
Existe-t-il un moyen de transmettre plusieurs @Values à un bean en utilisant la configuration java? Voici le code que j'utilise.
@Value("#{'${batch.outputFile}'}")
Resource outputFilePath;
@Value("#{'${batch.outputFileTrg}'}")
Resource outputFilePathTrg;
@Bean
public Step toServerStep(Resource outputFile) {
return stepBuilderFactory.get("toServerStep")
.chunk(1)
.reader(xmlFileItemReader())
.writer((ItemWriter<? super Object>) flatFileItemWriter(outputFile))
.build();
}
@Bean
public Job fileToServerJob(JobBuilderFactory jobBuilderFactory){
return jobBuilderFactory.get("fileToServerJob")
.start(toServerStep(outputFilePath1))
.next(toServerStep(outputFilePath2))
.build();
}
A partir du fichier de propriétés, vous ne pouvez pas obtenir de ressources. Vous ne pouvez obtenir que des URL ou des données, par exemple Integer, etc. – Mikhail