gpt4 book ai didi

用于 CSV 的基于 Spring-Batch Java 的 FileItemWriter

转载 作者:行者123 更新时间:2023-12-05 04:15:20 25 4
gpt4 key购买 nike

我有一个包含 ItemWriter 的 Spring Batch 服务,用于将数据写入 CSV。我使用了 Spring Batch 指南给出的示例。 https://spring.io/guides/gs/batch-processing/

我尝试修改 ItemWriter 以再次创建 CSV。

我面临的问题是-

  1. 如果不存在,则不会创建 CSV 文件。
  2. 如果我事先让它可用,它不会向它写入数据。

@Bean
public ItemWriter<Person> writer(DataSource dataSource) {

FlatFileitemWriter<Person> csvWriter = new FlatFileItemWriter<Person>();
csvWriter.setResource(new ClassPathResource("csv/new-data.csv"));
csvWriter.setShouldDeleteIfExists(true);
DelimitedLineAggregator<Person> lineAggregator = new DelimitedLineAggregator<Person>();
lineAggregator.setDelimiter(",");

BeanWrapperFieldExtractor<Person> fieldExtractor = new BeanWrapperFieldExtractor<Person>();
String[] names = {"firstName", "lastName"};
fieldExtractor.setNames(names);
lineAggregator.setFieldExtractor(fieldExtractor);
csvWriter.setLineAggregator(lineAggregator);
return csvWriter;
}

我浏览了各种链接,但它们显示了基于 XML 的配置示例。如何在 JAVA 中完全做到这一点?

最佳答案

您正在使用 ClassPathResource 进行编写。我不确定,但我认为您不能写入 ClassPathResource。尝试使用普通的 FileSystemResource 并重试。

此外,你如何注入(inject)作者?你确定它真的被实例化为 spring bean 吗?为什么要将 DataSource 作为参数,因为您不需要数据源来实例化 FlatFileItemWriter。

关于用于 CSV 的基于 Spring-Batch Java 的 FileItemWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com