【发布时间】:2014-08-28 16:23:23
【问题描述】:
我有一个 spring 批处理作业,它从目录中读取匹配命名模式的文件,进行一些处理,然后在输入文件中写回每行的处理状态。编写器必须生成与输入文件同名的输出文件。我将模式传递给 MultiResourceItemReader:“files-*.txt”,并期望 FlatFileItemWriter 使用输入文件的名称。如何在上下文 xml 文件中指定此约束?
阅读器 bean
<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
<property name="resources" value="file:#{jobParameters['cwd']}/#{jobParameters['inputFolder']}/file-*.txt" />
<property name="delegate" ref="itemReader" />
</bean>
<bean id="itemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="," />
<property name="names" value="paramA,paramB" />
</bean>
</property>
<property name="fieldSetMapper" >
<bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="targetType" value="a.b.c.d.MyObject" />
</bean>
</property>
</bean>
</property>
</bean>
我试过这个:在我的 FlatFileItemReader 实现中,将输入文件路径作为字符串属性添加到 ExecutionContext 的映射中。在我的 FlatFileItemWriter 实现中 - 覆盖 setResource 并根据 ExecutionContext 的值实际创建一个 Resource 对象。这可以吗?
【问题讨论】:
标签: spring-batch