springbatch5.0.2中如何获取job中.incrementer(new RunIdIncrementer())参数值
时间: 2024-02-13 16:04:58 浏览: 153
spring-framework-5.0.2.RELEASE-dist.zip
4星 · 用户满意度95%
在Spring Batch 5.0.2中,可以通过JobExecution对象获取Job中所有的参数值,包括Incrementer中的参数。如果在Job配置中使用了RunIdIncrementer,那么每次Job执行时都会生成一个新的Job execution ID来保证Job实例的唯一性。具体可以通过以下步骤实现:
1. 在Job配置文件中,使用RunIdIncrementer为Job配置Incrementer,例如:
```
<job id="myJob" incrementer="runIdIncrementer">
<step id="myStep" >
<!-- ... -->
</step>
</job>
<bean id="runIdIncrementer" class="org.springframework.batch.core.launch.support.RunIdIncrementer"/>
```
2. 在Job执行时,可以通过JobExecution对象获取Incrementer中的参数值,例如:
```
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job myJob;
public void runJob() throws Exception {
JobExecution jobExecution = jobLauncher.run(myJob, new JobParameters());
String jobExecutionId = jobExecution.getJobInstance().getJobName() + "_" + jobExecution.getId();
}
```
其中,通过JobExecution.getId()方法获取当前Job execution ID,通过JobInstance.getJobName()方法获取Job名称,最终拼接成一个唯一的Job execution ID。如果需要获取其他Incrementer中设置的参数值,可以在Incrementer bean中定义并注入到Job中,然后通过JobExecution.getExecutionContext()方法获取。
阅读全文