首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向CompositeItemProcessor注册ItemListener

如何向CompositeItemProcessor注册ItemListener
EN

Stack Overflow用户
提问于 2019-03-30 02:02:15
回答 1查看 149关注 0票数 1

我想将一些数据从一个步骤传递到另一个步骤,比如从step_1传递给step_2。我已经将数据传递给了step_1中的ExecutionContext。在step_2中,我正在尝试使用@beforeStep来检索JobExecution来恢复数据。

但是,step_2引用了一个CompositeItemProcessor,它似乎在默认情况下并未注册为侦听器。如何将ItemProcessListener注册到CompositeItemProcessor的一个进程以恢复JobExecution (然后从step_1恢复数据)?

EN

回答 1

Stack Overflow用户

发布于 2019-04-01 18:01:16

要注册任何监听器,可以列出作业中的监听器-在步骤中,然后在实现监听器时-可以实现特定的监听器

代码语言:javascript
复制
  <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>

然后你就可以实现处理器了

代码语言:javascript
复制
    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 ");
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55423195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档