根据物料的属性作为条件,将数据路由到物料写入器中的多个文件 [英] Routing data to multiple files in item writer based on item's property as criteria

查看:12
本文介绍了根据物料的属性作为条件,将数据路由到物料写入器中的多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在阅读器中收到一份项目列表。

在每个Item对象中都有一个名为Code的属性,它有几个我事先不知道的可能值。

1)根据每个项目中Code的值,我希望将该特定项目写入与该Code相关的输出文件中。例如,如果我当前项目的Code是"abc",则应将该项目写入编写器中的abc.txt。

2)如果当前项中存在Code"xyz",而该文件不存在,则应该创建一个新文件,并且该项应该转到该文件。

3)对于所有基于Code创建的多个文件,我还想添加一个页眉和页脚回调,以输入一些详细信息,例如每个文件中的项目数。

是否可以拥有满足上述3个要求的编写器?

我知道使用multiresource itemWriter可以在多个输出文件中划分数据。但据我所知,这个划分是根据项目的数量来划分的。例如文件1中的前10个项目、文件2中的下10个项目,依此类推。

但是如何根据我的问题中提到的Item属性将数据路由到输出文件呢?

我对Spring Batch比较熟悉,这是我第一次遇到这样的问题,只需要一点指导。

感谢阅读!

推荐答案

我会尝试至少2种策略

  1. 批处理将所有数据写入临时数据库表,简单的工具/批处理/脚本创建单独的文件-我不确定页眉/页脚,但人们可以一如既往地说"让我们保持廉价"
  2. itemWriter在飞翔上创建和管理所需的编写器,可能是以抽象的预配置编写器/Bean为模板,只要忽略重启场景,听起来就很容易

这篇关于根据物料的属性作为条件,将数据路由到物料写入器中的多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆