Ich versuche, einen Spring Batch-Job zu schreiben, der zwei Schritte enthält. Sie sind beide der gleiche Schritt, aber mit unterschiedlichen Dateipositionen. Als solche muss ich mehrere Zeichenfolgen in die Job-Bean übergeben, damit der Schritt weiß, wohin die verschiedenen Dateien gesendet werden sollen. Wenn ich jedoch versuche, die Resource-Werte zu übergeben, bekomme ich eine NoSuchBeanDefinitionException. Die Antworten, die ich dazu gefunden habe, ist, dass ich der Bean einen @ Value hinzufügen muss, um zu sagen, dass die Beans einen Parameter benötigen, um zu funktionieren. Aber das ist nur für einen Wert.Übergeben von mehreren @Value in einem @Bean in einer Java-Klasse
Gibt es eine Möglichkeit, mehrere @Values mit Java-Konfiguration an eine Bean zu übergeben? Unten ist der Code, den ich verwende.
@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();
}
Von der Eigenschaftendatei kann man keine Ressource bekommen. Sie können nur einige URLs oder Daten wie Integer usw. erhalten. – Mikhail