How to read all files in a folder with spring-batch and MultiResourceItemReader?

后端 未结 4 487
眼角桃花
眼角桃花 2020-12-29 10:37

I want to configure spring-batch to read all csv files inside a specific folder sequentially.

The following does not work because the deleg

4条回答
  •  星月不相逢
    2020-12-29 10:49

    Read multiple files from Absolute file path:

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

提交回复
热议问题