我正在从我的服务启动一项作业,代码如下
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
}
}
任何人都可以告诉我如何实现它吗? 谢谢
最佳答案
您可以在 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 中注入(inject) executionContext
以访问作业参数变量。
关于java - 在 ItemReader 中访问作业参数(使用 grails 的 spring-batch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858593/