gpt4 book ai didi

java - Spring Batch header 处理程序问题

转载 作者:行者123 更新时间:2023-12-01 11:15:37 25 4
gpt4 key购买 nike

我创建了一个 header 处理程序类,在其中将 header 的值放入执行上下文中。handleLine、beforeStep 和 afterStep 方法已经实现。但是当我运行应用程序时,handleLine 方法被调用并获得值但是由于某种原因,beforeStep 和 afterStep 没有被调用。我不确定为什么。下面是代码片段:

public class HeaderLineHandler implements LineCallbackHandler,StepExecutionListener {

StepExecution stepExecution;
public void handleLine(final String headerLine) {
stepExecution.getExecutionContext().put("headerKey",headerLine);
}

@Override
public ExitStatus afterStep(StepExecution stepExecution) {
// TODO Auto-generated method stub

JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
System.out.println("Header value" + (String)jobContext.get("headerKey"));

return stepExecution.getExitStatus();
}

@Override
public void beforeStep(StepExecution stepExecution) {
// TODO Auto-generated method stub
this.stepExecution = stepExecution;
}
}

请指教。

谢谢

最佳答案

HeaderLineHandler 注册为步骤监听器。
必须这样做,因为 - 正如文档中某处所写 - 只有一流的项目(当然是步骤、读取器、写入器和处理器,其他我现在不记得了)会被框架自动注册为监听器。

关于java - Spring Batch header 处理程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31860397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com