私は設定が必要なバネバッチジョブがあります。この意味で、渡されたものに応じて異なるファイルを読み込み、読み手を構築することができ、おそらくそれぞれの異なる読み手が独自の作家を持つことになります。下の例では1つのファイルを読み込み、ライターに電話します。どうすればload_area.txtを動的にすることができますか?スプリングバッチは実行時に異なるファイルを読み込みます
@Bean
public Step orderStep() {
return stepBuilderFactory.get("loadAStep")
.<FieldSetter, FieldSetter> chunk(3)
.reader(reader())
.processor(processor())
.writer(writer())
.build();
}
@Bean
public FlatFileItemReader<FieldSetter> reader() {
FlatFileItemReader<FieldSetter> reader = new FlatFileItemReader<FieldSetter>();
reader.setResource(new ClassPathResource("load_a.txt"));
reader.setLineMapper(new DefaultLineMapper<GenericFieldSetter>() {{
setLineTokenizer(new DelimitedLineTokenizer("|") {{
setNames(new String[] { "sCode","cName"});
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<FieldSetter>() {{
setTargetType(FieldSetter.class);
}});
}});
return reader;
}
@Bean
public ItemWriter<GenericFieldSetter> writer() {
return new LoadAreaItemWriter();
}
load_a.txt 22 | RRR
load_b.txt AA | ABCDED | 123 | 0000私が何であるかに応じて、実行時にload_a.txtまたはload_b.txtを読みたい
渡され、自身の作家を書く。それは.txtまたは任意のタイプになる可能性があります。
FieldSetter.javaはあなたが動的にファイル名を渡すjobExecutionContext
/stepExecutionContext
を使用することができますセッターとゲッター