是否可以在ItemReader
中使用和链接多个spring-batch
?
我有一个包含多个XML记录的大文件。
我现在想要使用FlatFileItemReader
来读取行,SeparationPolicy
来检测xml记录的开始和结束。
然后我想使用StaxEventItemReader
将xml转换为java类。
那么可以将两个读者联系起来吗?
答案 0 :(得分:2)
您可以通过滚动自己的ItemReader来完成此操作,该ItemReader由其他两个读者组成,但我不确定这将如何处理stax事件(我怀疑不会)。像这样:
http://forum.spring.io/forum/spring-projects/batch/51940-composite-reader
您可能需要考虑的另一个建议是将其转换为两个步骤:
FlatFileItemReader
将文件预处理为适当的XML并将其写入另一个文件StaxEvenItemReader
这种方法的结果是,如果stax端出现问题,你仍然可以将平面文件解析的工作保存在一个中间文件中,你可以重试它。
答案 1 :(得分:2)
执行JsonLineMapper
之类的事情
写一个自定义LineMapper
;注入JAXB上下文和解组行来创建域对象。