在 MultiResourceItemReader 中没有 属性 调用 'resource'

No property called 'resource' in MultiResourceItemReader

在spring批处理文档(http://docs.spring.io/spring-batch/reference/html/scalability.html)中,在7.4.3节下给出了我们可以从stepExecutionContext设置MultiResourceItemReader的'resource' 属性。但是MultiResourceItemReader中没有属性叫'resource',而是'resources'。 然后如何从 stepExecutionContext 将单个资源设置为 MultiResourceItemReader,这将在分区期间设置的每个上下文中具有单个文件名。

取而代之的是 resources(这是一个数组),可以这样设置:

<bean id="multiResourceReader" 
            class=" org.springframework.batch.item.file.MultiResourceItemReader">
    <property name="resources" value="file:some/folder/prefix*.csv" />
    <property name="delegate" ref="flatFileItemReader" />
</bean>

分区时,您不会使用 MultiResourceItemReader。相反,只需在步骤范围内使用 FlatFileItemReader

<bean id="flatFileItemReader" scope="step"
            class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="resource" value="file:#{stepExecutionContext['FILE.NAME']}">
</bean>