我从我的服务中启动了一项工作,代码看起来像
def jobParameters = new JobParametersBuilder()
.addDate('toDate',toDate)
.addDate('fromDate',fromDate)
def jobEx = jobLauncher.run(billProcessJob,jobParameters.toJobParameters())
它正在成功执行。但是我需要在项目阅读器中访问上面的作业参数。我的项目阅读器看起来像
class MyDomainMapper implements FieldSetMapper {
def mapLine(FieldSet fs) {
if(!fs) {
return null
}
log.debug('Record:'+fs);//Printing the file record successfully
//Here I need to access my job parameter to map with some domain
}
}
任何人都可以告诉我如何实现它吗? 感谢
答案 0 :(得分:2)
您可以在spring-batch上下文中定义bean:
<bean id="executionContext" class="com.xxx.ExecutionContextImpl" scope="step" >
<property name="toDate" value="#{jobParameters['toDate']}" />
<property name="fromDate" value="#{jobParameters['fromDate']}" />
</bean>
然后在ItemReader中注入executionContext
以访问作业参数变量。