Spring Batch Item Reader-使用skippedLinesCallback设置输入字段名称 [英] Spring Batch Item Reader - use skippedLinesCallback to set input field names

查看:7
本文介绍了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,以便阅读器解析文件中记录的睡觉。 请提出建议。

推荐答案

您可以:

  1. 将DlimitedLineTokenizer bean声明为非匿名(称为lineTokenizer)
  2. 在skippedLinesCallback集中将lineTokenizer引用作为属性
  3. 在SkippedLineCallback:Split Header中,然后设置为之前设置的lineTokenizer引用中的名称

这篇关于Spring Batch Item Reader-使用skippedLinesCallback设置输入字段名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆