我有一個春天批處理作業讀取文件匹配從目錄命名模式,進行一些處理,並寫回每行處理的狀態中輸入文件輸出文件。作者必須生成與輸入文件具有相同名稱的輸出文件。對於MultiResourceItemReader,我傳遞模式:「files - *。txt」,並期望FlatFileItemWriter使用輸入文件的名稱。如何在上下文xml文件中指定此約束?FlatFileItemWriter應該編寫一個名爲相同的輸入文件
讀者豆
<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的。在我的FlatFileItemWriter實現中 - 覆蓋setResource並實際從ExecutionContext中創建一個Resource對象。這樣好嗎?
謝謝你的詳細答覆@LucaBassoRicci。我用你的第一個建議。我們的Maven項目結構限制了我的Spring-batch-2.1.9版基礎結構,因此我在a.b.c.d.MyObject上編寫了自己的'ResourceAware'類接口。 – chetan