Spring Batch输出格式的文件?

时间:2011-05-30 03:34:21

标签: java spring-batch

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

谢谢! Tarun Sapra

1 个答案:

答案 0 :(得分:1)

鉴于Spring Batch是一个不处理用户输入的批处理框架,我不确定你是否正在使用正确的方案。但是,这里有一些不同的选择:

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

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

  3. 最后,我认为你应该能够在理论上使用Spring的bean工厂概念在作业开始时注入ItemWriter。为了记录,这纯粹是猜测,我实际上没有尝试过这个。

  4. Michael T Minella
    Pro Spring Batch

    的作者