Spring Batch Item Reader-使用skippedLinesCallback设置输入字段名称 [英] Spring Batch Item Reader - use skippedLinesCallback to set input field names
本文介绍了Spring Batch Item Reader-使用skippedLinesCallback设置输入字段名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的工作很简单,如下所示:
<batch:step id="step">
<batch:tasklet>
<batch:chunk reader="itemReader" processor="itemProcessor" writer="itemWriter" commit-interval="5000" />
</batch:tasklet>
</batch:step>
itemReader如下:
<bean id="itemReader" class="org.springframework.batch.item.file.FlatFileItemReader"
scope="step">
<property name="linesToSkip" value="1"></property>
<property name="skippedLinesCallback" ref="skippedLinesCallback" ></property>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="," />
<property name="names" value="${INPUT_FILE_FIELDS}" />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper" />
</property>
</bean>
</property>
<property name="resource" value="#{stepExecutionContext['inputKeyName']}" />
</bean>
我正在获取具有单行标题的输入文件。我想将阅读器的标题行设置为${INPUT_FILE_FIELS}。我正尝试使用skippedLinesCallback属性来实现它,但在此过程中受阻。
有没有什么可以用来读取标题行并将其设置为INPUT_FIELDS,以便阅读器解析文件中记录的睡觉。 请提出建议。
推荐答案
您可以:
- 将DlimitedLineTokenizer bean声明为非匿名(称为lineTokenizer)
- 在skippedLinesCallback集中将lineTokenizer引用作为属性
- 在SkippedLineCallback:Split Header中,然后设置为之前设置的lineTokenizer引用中的名称
这篇关于Spring Batch Item Reader-使用skippedLinesCallback设置输入字段名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文