您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Tasklet存储在JobExecutionContext中并在另一个Tasklet中访问

从Tasklet存储在JobExecutionContext中并在另一个Tasklet中访问

你至少有4种可能性:

设定值

public class ChangingJobExecutionContextTasklet implements Tasklet {

    /** {@inheritDoc} */
    @Override
    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
        // set variable in JobExecutionContext
        chunkContext
                .getStepContext()
                .getStepExecution()
                .getJobExecution()
                .getExecutionContext()
                .put("value", "foo");

        // exit the step
        return RepeatStatus.FINISHED;
    }

}

提取值

public class ReadingJobExecutionContextTasklet implements Tasklet {

    private static final Logger LOG = LoggerFactory.getLogger(ChangingJobExecutionContextTasklet.class);

    /** {@inheritDoc} */
    @Override
    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
        // pull variable from JobExecutionContext
        String value = (String) chunkContext
                                    .getStepContext()
                                    .getStepExecution()
                                    .getJobExecution()
                                    .getExecutionContext()
                                    .get("value");

        LOG.debug("Found value in JobExecutionContext:" + value);

        // exit the step
        return RepeatStatus.FINISHED;
    }
}
其他 2022/1/1 18:20:52 有697人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶