Spring boot 如何使用SpringBatch分别读取多个文件、处理和写入

Spring boot 如何使用SpringBatch分别读取多个文件、处理和写入,spring-boot,spring-batch,Spring Boot,Spring Batch,我想读取多个文件,name*.txt并处理它们 为此,我使用了MultiResourceItemReader 它只能一次读取所有文件、处理和写入。我想分别读取多个文件,对它们进行处理和写入 守则: @Bean public MultiResourceItemReader<POJO> multiResourceItemReader() { MultiResourceItemReader<POJO> resourceItemReader = new MultiReso

我想读取多个文件,
name*.txt
并处理它们

为此,我使用了
MultiResourceItemReader

它只能一次读取所有文件、处理和写入。我想分别读取多个文件,对它们进行处理和写入

守则:

@Bean
public MultiResourceItemReader<POJO> multiResourceItemReader() {
    MultiResourceItemReader<POJO> resourceItemReader = new MultiResourceItemReader<POJO>();
    ClassLoader cl = this.getClass().getClassLoader();
    ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(cl);

    Resource[] resources = resolver.getResources("file:" + filePath );
    resourceItemReader.setResources(resources);
    resourceItemReader.setDelegate(reader());
    return resourceItemReader;
}
@Bean
公共MultiResourceItemReader MultiResourceItemReader(){
MultiResourceItemReader resourceItemReader=新的MultiResourceItemReader();
ClassLoader cl=this.getClass().getClassLoader();
ResourcePatternResolver解析器=新路径匹配ResourcePatternResolver(cl);
Resource[]resources=resolver.getResources(“文件:+filePath”);
resourceItemReader.setResources(资源);
setDelegate(reader());
返回resourceItemReader;
}

这就是
MultiResourceItemReader
的工作原理。在您的情况下,可以为每个文件创建一个作业实例

让一件事做一件事并做好它有很多优点,在您的用例中,其中一个优点是可重启性:如果其中一个作业失败,您只重新启动失败的作业