我想在spring-batch-writer中写入CSV文件,但我不想在我的bean中使用属性名称,我需要一个自定义字段名称。有没有其他方法可以在不使用BeanWrapperFieldExtractor的情况下做到这一点?
这是我的豆子:
public class VMi {
private String Name;
private String OrgName;
private String Status;
private int CPU;
private int RAM;
private String IP;
}
我想输出除了"0"之外具有相同名称的字段;OrgName";我希望它是";组织->名称";
如果要在输出文件的头中写入不同的名称,可以使用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
写入不同的名称。