我想将一些数据从一个步骤传递到另一个步骤,比如从step_1传递给step_2。我已经将数据传递给了step_1中的ExecutionContext。在step_2中,我正在尝试使用@beforeStep来检索JobExecution来恢复数据。
但是,step_2引用了一个CompositeItemProcessor,它似乎在默认情况下并未注册为侦听器。如何将ItemProcessListener注册到CompositeItemProcessor的一个进程以恢复JobExecution (然后从step_1恢复数据)?
发布于 2019-04-01 18:01:16
要注册任何监听器,可以列出作业中的监听器-在步骤中,然后在实现监听器时-可以实现特定的监听器
<bean id="customItemProcessListener"
class="com.listeners.CustomItemProcessListener" />
<job id="myJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step2">
<tasklet>
<chunk reader="reader" writer="writer"
commit-interval="1" />
<listeners>
<listener ref="customItemProcessListener" />
</listeners>
</tasklet>
</step>
</job>然后你就可以实现处理器了
public class CustomItemProcessListener implements ItemProcessListener<T> {
@Override
public void beforeProcess(T items) {
System.out.println("ItemProcessListener - beforeProcess");
}
@Override
public void afterProcess(T items , S result) {
System.out.println("ItemProcessListener - afterProcess");
}
@Override
public void onProcessError(T items , Exception exception) {
System.out.println("ItemProcessListener - onProcessError ");
}
}https://stackoverflow.com/questions/55423195
复制相似问题