我正在通过我的服务启动工作,代码看起来像
def jobParameters = new JobParametersBuilder()
.addDate('toDate',toDate)
.addDate('fromDate',fromDate)
def jobEx = jobLauncher.run(billProcessJob,jobParameters.toJobParameters())
并且它执行成功。但是我需要在Item Reader中访问上述job参数。我的物品阅读器看起来像
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
}
}
谁能告诉我我该如何实现?
谢谢
最佳答案
您可以在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>
然后将
executionContext
注入(inject)ItemReader中,以访问作业参数变量。