java - ItemReader 的作业参数

标签 java spring-batch

我正在尝试访问 itemReader 中的 JobParameters,我遵循了 Spring 用户指南中的“作业和步骤属性的后期绑定(bind)”,但无法使其工作。

这是我的配置: Spring 批处理 2.1.8 Spring-core 3.0.5

 <bean id="ipcFileReader" scope="step" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="#{jobParameters['filename']}"/>
    <property name="lineMapper" ref="lineMapper"/>
    <property name="comments" value="#"/>
</bean>

我的测试类:

@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,StepScopeTestExecutionListener.class})
@ContextConfiguration
public class IpcFileReaderTest {

@Autowired
private ItemReader<Client> ipcFileReader;

public StepExecution getStepExecution(){
    StepExecution execution = MetaDataInstanceFactory.createStepExecution();
    execution.getExecutionContext().putString("filename",System.getProperty("user.dir") + "/src/test/resources/OMC_File/OMC_Test_1.csv");
    return execution;

@Test
public void testReader() throws UnexpectedInputException, ParseException, NonTransientResourceException, Exception{
    Assert.assertNotNull(ipcFileReader.read());
}
}

但我总是遇到这个错误:

Error creating bean with name  'lazyBindingProxy.lazyBindingProxy.ipcFileReader#execution#1234' defined in class path resource [applicationContext-Ipc.xml]: Initialization of bean failed; nested exception is java.lang.IllegalStateException: Cannot bind to placeholder: jobParameters['filename']

有什么想法吗?

谢谢

最佳答案

实际上,这是由于一个非常小的错字造成的。

#{jobParameters['filename']}

应该是:

#{jobParameters[filename]}

不需要单引号。

关于java - ItemReader 的作业参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440817/

相关文章:

java - 如何手工计算一个字符串的哈希码?

java - 如果 setPopupVisible 遵循 setvisible true,则取消 setPopupVisible

java - 在MySQL中存储特殊字符

java - 如何使用不同的参数同时启动同一个 spring-batch 作业?

java - 关于步骤之间数据的 Spring Batch 最佳实践

java - 如何使用 Spring Boot Batch Job 更新数据库中的海量数据

Spring-Batch - MultiFileResourcePartitioner - 由 : java.net.SocketException 引起:连接重置

java - 将图像放入 webview 并适合其宽度

java - 调用 webservice 时出现问题 - javax.xml.ws.WebServiceException 和类没有名称的属性

java - Spring Batch - JpaPagingItemReader - 在 MySQL 中工作 - 在 PostgreSQL 中重复