【问题标题】:How can I read multiple files at a time in a Spring Batch module?如何在 Spring Batch 模块中一次读取多个文件?
【发布时间】:2018-01-30 23:04:41
【问题描述】:

我希望我的 Spring Batch 模块一次读取多个文件。目前,我的批处理模块一次只能读取一个文件,但我可以从一个批处理模块中读取多行。我该如何实现?

<core type="BatchCreate" class="com.batch.BatchCore" concurrency="1" start="20" stop="80" status="true">

【问题讨论】:

    标签: java spring spring-batch


    【解决方案1】:

    您可以使用 MultiResourceItemReader 读取多个文件。

    下面是相同的java配置

    @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
      public FlatFileItemReader<POJO> reader() {
        FlatFileItemReader<POJO> reader = new FlatFileItemReader<POJO>();
        reader.setLineMapper(new DefaultLineMapper() {{
          setLineTokenizer(new DelimitedLineTokenizer() {{
            setNames(new String[]{"id1", "POJO"});
          }});
          setFieldSetMapper(new BeanWrapperFieldSetMapper<POJO>() {{
            setTargetType(POJO.class);
          }});
        }});
        return reader;
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多