我有以下要求:CSV输入文件包含其中一个字段是ID的行。可以有多个具有相同ID的行。这些行应按
我有一个可以正常工作的实现,但它是在Partitioner实现中使用我自己的代码读取CSV输入文件。如果我可以使用开箱即用的实现(例如FlatFileItemReader)并且只是像配置Chunk步骤那样配置它会更好。
为了澄清,我的工作配置是这样的:
<batch:job id="job">
<batch:step id="partitionStep">
<batch:partition step="chunkStep" partitioner="partitioner">
<batch:handler grid-size="10" task-executor="taskExecutor" />
</batch:partition>
</batch:step>
</batch:job>
<batch:step id="chunkStep">
<batch:tasklet transaction-manager="transactionManager">
<batch:chunk reader="reader" processor="processor" writer="writer" chunk-completion-policy="completionPolicy">
.. skip and retry policies omitted for brevity
</batch:chunk>
</batch:tasklet>
</batch:step>
<bean id="partitioner" class="com.acme.InputFilePartitioner" scope="step">
<property name="inputFileName" value="src/main/resources/input/example.csv" />
</bean>
<bean id="reader" class="org.springframework.batch.item.support.ListItemReader" scope="step">
<constructor-arg value="#{stepExecutionContext['key']}"/>
</bean>
分区程序实现读取输入文件,&#34;手动&#34;解析行以获取ID字段,按ID分组并将它们放入Lists中,并创建ExecutionContexts,每个都获得其中一个列表。
如果我可以替换那个&#34;手册&#34;那将是很好的。通过配置带有ObjectMapper的FlatFileItemReader配置分区程序中的代码。 (我希望我能清楚地表达自己的意思)。
有可能吗?