在Spring Batch中,在块逻辑完成后执行某种逻辑的正确方法是什么,但是在提交/回滚之前?
交易后当前触发了 afterChunk
。如果我想在提交之前做某种清理怎么办? (例如,清除beforeChunk
中插入的一些临时记录。)
我能想到的一个解决方法是使用CompositeWriter,并将额外的逻辑作为另一个编写器。但是它会使维护变得困难,因为我无法构成包含"额外逻辑"的共享父步骤配置。
答案 0 :(得分:1)
您可以使用ItemWriteListener.afterWrite()
在ItemWriter.write之后调用(java.util.List)这将被调用 在任何交易提交之前和之前 ChunkListener.afterChunk(ChunkContext)