【问题标题】:custom CSV fields names in spring batch writer春季批处理编写器中的自定义 CSV 字段名称
【发布时间】:2020-12-04 08:41:21
【问题描述】:

我想在 spring 批处理写入器中写入 CSV 文件,但我不想在我的 bean 中使用属性名称,我需要一个自定义字段名称。有没有不使用 BeanWrapperFieldExtractor 的另一种方法?

这是我的豆子:

public class VMi {
    private String Name;
    private String OrgName;
    private String Status;
    private int CPU;
    private int RAM;
    private String IP;
}

我想输出具有相同名称的字段,但“OrgName”除外,我希望它为“Organization->Name”

【问题讨论】:

  • 您的意思是要在输出文件的标题中使用不同的名称吗?因为 BeanWrapperFieldExtractor 基于 getter 从字段中提取值,您仍然可以将它与 FlatFileHeaderCallback 结合使用,您可以在标题中写入自定义字段名称。

标签: spring-batch export-to-csv


【解决方案1】:

如果你想在输出文件的头部写不同的名字,你可以使用FlatFileHeaderCallback。这是一个简单的例子:

@Bean
public FlatFileItemWriter<VMi> itemWriter() {
    return new FlatFileItemWriterBuilder<VMi>()
            .resource(new FileSystemResource("vmi.csv"))
            .name("vmiWriter")
            .delimited()
            .names("Name", "OrgName", "Status", "CPU", "RAM", "IP")
            .headerCallback(writer -> writer.write("Name, Organization->Name, Status, CPU, RAM, IP"))
            .build();
}

这仍将使用 BeanWrapperFieldExtractor 从基于 getter 的项目中提取值,但在输出文件中为 OrgName 写入不同的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2019-03-24
    • 2020-03-31
    • 2014-12-15
    • 2018-05-27
    相关资源
    最近更新 更多