【问题标题】:Is there any Guidelines/ Recommendations for Spring-Batch Project StructureSpring-Batch 项目结构是否有任何指南/建议
【发布时间】:2020-02-15 06:58:16
【问题描述】:

我要开始一个新的 Spring-Batch 项目,需要一些指导来构建我的项目。 我能想到的几个例子:

  1. 将所有读取器、处理器和写入器放在一起。

    阅读器 -> 第 1 步,第 2 步 处理器 -> 步骤 1,步骤 2 作家 -> 第 1 步,第 2 步

  2. 分步,将每个步骤的Reader、Processor和Writer放在一起

    第 1 步 -> 读取器、处理器和写入器 第 2 步 -> 读取器、处理器和写入器

您能否建议最好的结构?

【问题讨论】:

    标签: spring-batch project-structure


    【解决方案1】:

    这取决于您希望如何构建系统:by feature or by "layer"

    没有具体的指导方针,因为它取决于用例,但这里有一些特定于 (Spring) 批处理应用程序的想法:

    • 读取器/写入器形成一个可重用组件库,因此我会将它们放在单独的包中,并在需要它们的步骤中(重新)使用它们。
    • 听众也可以与读者/作者属于同一类别
    • 某些步骤也可以重复使用(常见的 tasklet,例如清理目录或下载文件),因此步骤也可以被视为可重复使用的组件。

    最后,作业是您需要找出构建/打包它们的最佳方法的地方(每个作业一个 jar,或同一个 jar 中的多个作业等)。

    【讨论】:

      【解决方案2】:

      我最近做了我的: 1)顶部的配置包含所有作业的一般配置,数据源也是如此。 2) Runner 是运行所有的作业。 3) SupplierReminder 是包含自己的阅读器、映射器、配置、模型、处理器、调度器和写入器的作业。

      当您有其他工作时,创建一个与步骤 3 具有相似结构的新包

      【讨论】:

      • 感谢 Akki 的回复,您的意思是我应该为每个作业创建新的包,并将其读取器处理器和写入器保存在其中吗?
      • 那么当你在一个工作中会有多个步骤时呢?您是否将所有步骤的阅读器保存在阅读器下的一个文件夹中?
      • 是的,对于每项工作,请将其保存在不同的包装中,并且有关阅读器的所有内容都在该特定工作的阅读器中。作业步骤保留在该作业的配置中。您可以在读取器、处理器和写入器等作业中添加多个步骤(您也可以根据需要配置重试等)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 2013-07-31
      • 1970-01-01
      • 2018-03-25
      • 2012-11-28
      相关资源
      最近更新 更多