java - 在 ItemReader 中访问作业参数(使用 grails 的 spring-batch)

标签 java grails spring-batch

我正在从我的服务启动一项作业,代码如下

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/

相关文章:

chalice 3 : ServletContext is coming null in grails service

java - JVM 崩溃,没有任何崩溃转储,崩溃报告被 apport 忽略

spring-batch - 如何修复 java.lang.ClassNotFoundException : org. springframework.batch.classify.BackToBackPatternClassifier

java - 删除时权限不足

java - 删除我的 json 字符串中添加的转义字符

java - 使用 Spring Security 'hasPermission()' 在未经授权的 REST 服务请求上返回 JSON

java - Young , Tenured 和 Perm 一代

postgresql - 将具有相同列的多个表的查询合并到一个查询中

java - Spring Batch 电子邮件监听器

java - 在 Eclipse Che 中调试 Java 测试