我在春季批中有自己的fieldsetmapper。我想跳过一些符合条件的行。如果我在mapFieldSet(FieldSet FieldSet)中返回null, itemreader将停止。这意味着剩余的行不会被处理。
那么如何跳过mapFieldSet中的行呢?
如果文本行内容形式正确,则FieldSetMapper.mapFieldSet()
进行的解析返回一个有效对象;返回的对象应该在ItemProcessor
中"过滤掉"(符合您的业务标准),如"过滤记录"一章所述。
可以抛出异常并配置批处理读取器的skippable-exception-classes
。记住也要配置skip-limit
:
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader" writer="itemWriter"
commit-interval="10" skip-limit="10">
<skippable-exception-classes>
<include class="org.springframework.batch.item.file.FlatFileParseException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
</step>
详情在此:http://docs.spring.io/spring-batch/reference/html/configureStep.html