Spring Batch如何使用PathMatchingResourcePatternResolver从文件夹及其所有子文件夹中读取所有json文件

奥伦

我正在使用Spring Batch MultiResourceItemReader来读取多文件文件。这些文件位于父目录及其子目录中。

已经尝试过:

  1. 通过我自己的自定义代码读取文件,然后手动创建Resource数组。

  2. 在代码示例中可以看到使用PathMatchingResourcePatternResolver(受此启发性资源的启发,在JAR中使用PathMatchingResourcePatternResolver和URLClassloader

    @Bean
    public MultiResourceItemReader<List<SingleJsonRowInput>> 
    multiResourceItemReader() {
    PathMatchingResourcePatternResolver  patternResolver = new 
    PathMatchingResourcePatternResolver();
    Resource resources[] = null;;
    try {
        resources = 
        patternResolver.getResources("file:C:\\inputFolder\\**\\*.json");
    } catch (IOException e) {
        e.printStackTrace();
    }
    MultiResourceItemReader<List<SingleJsonRowInput>> 
    multiResourceItemReader = new MultiResourceItemReader<>();
    multiResourceItemReader.setResources(resources);
    multiResourceItemReader.setDelegate(new 
    ItemReaderForMulti(fileManager));
    return multiResourceItemReader;
    }
    
Mahmoud Ben Hassine

您可以使用以下代码段:

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("file:/root/folder/**/*.json");

**/*会由递归返回的文件root/folder然后,您将资源数组传递给MultiResourceItemReader

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章