【问题标题】:Spring Batch output format of the file?Spring Batch输出文件的格式?
【发布时间】:2011-05-30 03:34:20
【问题描述】:

在春季批处理示例中,有很多将数据从 csv 格式复制到 db 表、将 db 表复制到 csv 等的示例。我想知道有没有一种方法可以让用户选择特定的作业,例如复制数据从 csv 文件中指定目标格式,即 excel、db、pdf。因此,作业的目标格式取决于用户输入。?

谢谢! 塔伦萨普拉

【问题讨论】:

  • 为所有输出创建作业,并根据用户输入运行相应的作业。

标签: java spring-batch


【解决方案1】:

鉴于 Spring Batch 是一个不处理用户输入的批处理框架,我不确定您在这里使用的场景是否正确。但是,这里有几个不同的选项:

  1. 使用作业参数和决策步骤来引导 ItemReader/ItemWriter 的正确组合。这样做的缺点是您需要为每个实现定义一个步骤(一个用于处理 PDF,一个用于 Excel 等),但是由于每次运行该作业只会进行一次选择,因此对性能。

  2. 更简洁的方法仍将使用作业参数,但是它将使用 ClassifierCompositeItemWriter 委托给适当的编写器。这个 ItemWriter 将为每个实现类型(PDF、Excel 等)配置一个 ItemWriter 委托,并根据您配置的 Classifier 接口的实现向它们发出指令。虽然从配置的角度来看这是一种更简洁的方法,但它的缺点是评估 ItemWriter 处理的每个单独项目(假设整个运行旨在将所有项目发送到每次运行的相同 ItemWriter )。

  3. 最后,我认为您应该能够在理论上使用 Spring 的 bean factory 概念在作业开始时注入 ItemWriter。郑重声明,这纯属猜测,我还没有实际尝试过。

迈克尔·T·米内拉
Pro Spring Batch的作者

【讨论】:

  • 你好 michael,你能提供一些 ClassifierCompositeItemWriter 的工作示例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 2017-06-29
  • 1970-01-01
  • 2014-02-19
  • 2016-05-25
  • 2019-08-01
  • 1970-01-01
相关资源
最近更新 更多