可以条件执行或其他技术驱动Spring Batch中另一个ItemReader的参数值吗?

据我所知,Spring Batch有一个条件执行,可以配置为根据当前步骤的ExitStatus决定下一个步骤,但是......

  • 如果我希望我的Spring Batch作业运行一个查询,我使用哪个结果集来判断我在ItemReader中的查询中的参数值是SpringBatch设置的怎么办?

  • 或者Spring Batch框架是否会“强迫”我为该初始查询设置一个处理器和一个Writer?

如果第二个问题的答案是 yes ,那该怎么处理呢?

回答(1)

2 years ago

这很简单,您可以使用TaskletStep来运行查询并使用"normal"步骤(读取:读取器,编写器,处理器是可选的),它使用TaskletStep提供的一些值 .

要获取从第一步到后一步的值,您可以使用late-binding of job/step attributes,也可以看到stackoverflow question for interstep communication .

对于“正常”步骤,设置ItemReader和ItemWriter,ItemProcessor是可选的 .