我正在通过我的服务启动工作,代码看起来像

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中,以访问作业参数变量。

08-16 18:25