gpt4 book ai didi

java - Spring Batch - 基于字段值的多个编写器

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:44:04 26 4
gpt4 key购买 nike

我正在为当前使用 FlatFileItemWriter 的作者开发 spring batch。

我想根据某个字段值将我的输入文件内容写入多个平面文件。默认情况下,Spring 批处理是否支持任何类型的功能。[类似于 CompositeItemWriter 的东西]

比如我的输入文件内容是这样的

john,35,retail,10000
joe,34,homeloan,20000
Amy,23,retail,2000

现在我想根据第三列写两个不同的文件,这意味着第 1 行和第 3 行应该转到 file1,第 2 行应该转到 file2。

我的编写器配置是:

<bean id="fileWriter" class="org.springframework.batch.item.file.FlatFileItemWriter">

<property name="resource" value="file:C:/output.dat"/>

<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter" value="|" />
<property name="fieldExtractor">
<bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<property name="names" value="field1,field2...." />
</bean>
</property>
</bean>
</property>
</bean>

最佳答案

看看 ClassifierCompositeItemWriter。此 ItemWriter 实现允许您定义一个 Classifier,它选择要委托(delegate)给哪个已定义委托(delegate) ItemWriter 实例。在您的情况下,您将创建一个基于 field4 决定的 Classifier 并将写入委托(delegate)给 FlatFileItemWriter 的适当实例。

您可以在此处的文档中阅读有关 ClassifierCompositeItemWriter 的更多信息:http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/support/ClassifierCompositeItemWriter.html

关于java - Spring Batch - 基于字段值的多个编写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com