spring-batch - 如何在 Spring Batch Listener 中访问 Job 参数?
问题描述
我正在ItemListenerSupport
为 ItemReadListener、ItemProcessListener 和 ItemWriteListener 做一些错误处理。我想在这种情况下访问作业参数。我如何获取那些?我试图@BeforeStep
注入 StepExecution 和 Jobexecution 但都没有奏效。
解决方案
要获取作业参数的句柄,您可以在侦听器类中实现 StepExecutionListener 以使用覆盖方法 beforeStep 和 afterStep
@Override
public void beforeStep(StepExecution stepExecution) {
String name = (String) stepExecution.getJobExecution().getExecutionContext()
.get("name");
}
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
if (stepExecution.getStatus() == BatchStatus.COMPLETED) {
return ExitStatus.COMPLETED;
}
return ExitStatus.FAILED;
}
推荐阅读
- java - 如何在 JFrame 中创建交互式地图
- ios - 带有黑色半透明状态栏的 iPhone 上的 WebApp:视口高度似乎是错误的
- deep-learning - Gensim word2vec 模型损失在几个 epoch 后变为 0
- java - 如何在本地保存来自 Firebase 存储的音频
- reactjs - ReactJs StyledComponent 和 ClassName
- git - 我的拉取请求有一个我没有写的代码
- node.js - 节点进程通信
- swift - 使用 https://cocoapods.org/pods/SQLite.swift 附加两个 sqlite 数据库的问题
- reactjs - 来自 Geolocation API 的国家/地区
- docker - 无法访问部署到 kubernetes 的容器化 asp.core web api?