Spring batch 在spring批处理中从平面文件读取的动态列

Spring batch 在spring批处理中从平面文件读取的动态列,spring-batch,Spring Batch,我有一个用例,用户可以从输入文件中选择列,然后运行作业。他们可能会从完整的列集合中选择几个列,所以我不想为每个作业创建域对象,而是将列名作为作业参数传递 我试着从下面的例子 但当我运行这个程序时,我会得到一个异常 原因:org.springframework.batch.item.file.transform.IncorrectTokenCountException:在记录中找到的令牌数量不正确:预期2实际3 我在输入文件中有三列,但只想读取2列。这是密码 @Bean @StepSco

我有一个用例,用户可以从输入文件中选择列,然后运行作业。他们可能会从完整的列集合中选择几个列,所以我不想为每个作业创建域对象,而是将列名作为作业参数传递

我试着从下面的例子

但当我运行这个程序时,我会得到一个异常

原因:org.springframework.batch.item.file.transform.IncorrectTokenCountException:在记录中找到的令牌数量不正确:预期2实际3

我在输入文件中有三列,但只想读取2列。这是密码

@Bean
    @StepScope
    public ItemStreamReader<String[]> reader(
            @Value("#{jobParameters['fileName']}") String fileName,
            @Value("#{jobParameters['columnNames']}") String columnNames
    ) {
        return new FlatFileItemReaderBuilder<String[]>()
                .name("Reader")
                .resource(new ClassPathResource(fileName))
                .lineMapper(new DefaultLineMapper<String[]>() {{
                    setLineTokenizer(new DelimitedLineTokenizer() {{
                        setNames(columnNames.split(","));
                    }});
                }})
                .build();
    }


这里怎么了?提前感谢您的帮助。

这是否回答了您的问题?