Java 如何在Spring批处理的作业上下文xml文件中使用jobExecutionContext[';key';]

Java 如何在Spring批处理的作业上下文xml文件中使用jobExecutionContext[';key';],java,spring,spring-mvc,spring-batch,batch-processing,Java,Spring,Spring Mvc,Spring Batch,Batch Processing,我正在处理spring批处理。我在JobListener beforeStep方法中将作业执行上下文中的一些参数设置为键值对。我想在bean定义中检索这些参数。但我有个例外 我在作业定义中配置了此侦听器 我的beforeJob()方法类似于 public void beforeJob(JobExecution jobExecution) { // TODO Auto-generated method stub System.out.println("Before Member N

我正在处理spring批处理。我在JobListener beforeStep方法中将作业执行上下文中的一些参数设置为键值对。我想在bean定义中检索这些参数。但我有个例外

我在作业定义中配置了此侦听器

我的beforeJob()方法类似于

public void beforeJob(JobExecution jobExecution) {
    // TODO Auto-generated method stub
    System.out.println("Before Member Number Import Job");
    log.info("Writing Failed File Header");
    jobExecution.getExecutionContext().put("date", DateUtil.getDateString());
    jobExecution.getExecutionContext().put("fileName", "dummy.txt");
    writeHeader();
}
我使用它来设置FlatFileReaderbean的资源属性

<property name="resource" value="file:#{jobExecutionContext['date']}" />
请建议我如何解决这个问题。
提前感谢

由于无法查看
FlatFileItemReader
bean的配置,我不得不假设您没有将其配置为步骤范围…不幸的是,由于项目策略,我无法发布。如果你发布一个例子会很有帮助。你不能发布一行写着
?这就是我真正想要的。我明白你的意思,我在bean定义中使用了scope=“step”。我的问题解决了。感谢您的帮助您可能希望发布解决方案,并将其标记为已回答,这样人们就不会继续查看它,除非他们找到了此问题的答案。
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property 'jobExecutionContext' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext'
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:208)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:72)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:102)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:97)
at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:82)
at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:1)
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:139)
... 27 more