![](/img/trans.png)
[英]How to write multiple XML files for child beans in Spring Batch ItemWriter?
[英]Spring batch - write multiple files to multiple destinations
我是Spring批处理的新手,目前正在从事新的批处理工作。 我的批处理作业:
目前,我正在使用CompositeItemWriter编写5个文件,并且可以正常工作。
<bean id="ComapanyWriter"
class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<ref bean="CompanyAWriter" />
<ref bean="CompanyBWriter" />
<ref bean="CompanyCWriter" />
<ref bean="CompanyDWriter" />
<ref bean="ResignedEmpWriter" />
</list>
</property>
</bean>
但是,我意识到,如果读取器从数据库中检索到5万条记录,则每个写入器将循环所有记录,搜索其各自的公司员工并写入文件,这总共是5 x 5万次,并且是多余的。 因此,我担心性能。
我能想到的一些解决方案:
请告诉我如何实现上述方法或如何实现批处理作业目标。
ClassifierCompositeItemWriter
是必经之路。 Classifier
将对项目进行Classifier
并将其传递给指定的作者。 这样,每个编写器将只接收分配给它的类的项目,而不遍历该块的所有项目。
您可以在此处找到有关如何使用ClassifierCompositeItemWriter
的示例: https : //github.com/spring-projects/spring-batch/blob/master/spring-batch-infrastructure/src/test/java/org/springframework/batch /item/support/ClassifierCompositeItemWriterTests.java
有一个与此类似的问题,我在此添加以供参考: 读取平面文件并写入多个将写入不同对象的写入器 。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.