Spring integration Spring批处理:如何将csv文件的第一行列(标题)设置为my file reader的标记名
我有一个csv文件要通过spring批处理使用。列标题(名称)可能因客户而异。使用FlatFileItemReader读取数据时,如何将令牌名称设置为第一行(标题)列名?我正在使用Java配置来设置流Spring integration Spring批处理:如何将csv文件的第一行列(标题)设置为my file reader的标记名,spring-integration,spring-batch,Spring Integration,Spring Batch,我有一个csv文件要通过spring批处理使用。列标题(名称)可能因客户而异。使用FlatFileItemReader读取数据时,如何将令牌名称设置为第一行(标题)列名?我正在使用Java配置来设置流 感谢您的评论/建议一个解决方案是使用该方法放弃csv文件的第一行。例如: flatFileItemReader.setLinesToSkip(1); 您可以按如下方式使用: <bean id="flatFileItemReader" class="org.springframewo
感谢您的评论/建议一个解决方案是使用该方法放弃csv文件的第一行。例如:
flatFileItemReader.setLinesToSkip(1);
您可以按如下方式使用:
<bean id="flatFileItemReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<!-- linesToSkip => The number of lines to skip at the beginning of the
file. This feature is particularly useful to handle file headers. -->
<property name="linesToSkip" value="1" />
您应该设置LineToSkip属性:
@Component
@JobScope
public class CsvToDbItemReader extends FlatFileItemReader<BillDTO> {
public CsvToDbItemReader(@Value("#{jobParameters}") Map jobParameters)
{
String uploadDate = (String) jobParameters.get("uploadDate");
this.setResource(new FileSystemResource(getFileName(uploadDate)));
this.setLinesToSkip(1); //set header line
LineMapper<BillDTO> lineMapper = createBillLineMapper();
this.setLineMapper(lineMapper);
}
}
@组件
@工作范围
公共类CsvToDbItemReader扩展FlatFileItemReader{
公共CsvToDbItemReader(@Value(“#{jobParameters}”)映射jobParameters)
{
String uploadDate=(String)jobParameters.get(“uploadDate”);
this.setResource(新文件系统资源(getFileName(uploadDate));
this.setLinesToSkip(1);//设置标题行
LineMapper LineMapper=createBillLineMapper();
这个.setLineMapper(lineMapper);
}
}
请编辑您的答案并添加Java配置的相关部分,好吗?