java - 如何在 Spring Batch 模块中一次读取多个文件?

标签 java spring spring-batch

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

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

最佳答案

您可以使用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;
  }

关于java - 如何在 Spring Batch 模块中一次读取多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513838/

相关文章:

java - 获取对象中的 SUM 值

java - 在 Apache Tomcat 服务器上部署 GWT 应用程序时出现 500 内部服务器错误

Spring Batch 和 Spring3.1 配置文件

java - 实现 Spring Batch 进度条 - 获取作业执行的总行数

spring-batch - Spring Batch : HikariPool-1 - Connection is not available, 请求在 30000 毫秒后超时

java - 在 TextView 中显示数组

java - Servlet 使用旧的 SQL 数据

java - 当前没有 session 绑定(bind)到执行上下文

java - Spring @Component 类必须是公开的吗?

java - 如何在单元测试中在ApplicationRunner之前运行代码?