Spring batch 是否有关于Spring批处理项目结构的指南/建议

Spring batch 是否有关于Spring批处理项目结构的指南/建议,spring-batch,project-structure,Spring Batch,Project Structure,我将开始一个新的Spring批处理项目,在构建项目时需要一些指导。 我想不出几个例子: 将所有读卡器、处理器和写入器放在一起 读卡器->步骤1,步骤2 处理器->步骤1,步骤2 编写器->步骤1,步骤2 分为几个步骤,每个步骤都将读卡器、处理器和写入器放在一起 步骤1->读卡器、处理器和写入器 步骤2->读卡器、处理器和写入器 你能建议最好的结构吗?我最近做了我的: 1) 顶部的配置包含所有作业的常规配置,数据源也是如此。 2) Runner负责运行所有作业。 3) SupplierRemind

我将开始一个新的Spring批处理项目,在构建项目时需要一些指导。 我想不出几个例子:

  • 将所有读卡器、处理器和写入器放在一起

    读卡器->步骤1,步骤2 处理器->步骤1,步骤2 编写器->步骤1,步骤2

  • 分为几个步骤,每个步骤都将读卡器、处理器和写入器放在一起

    步骤1->读卡器、处理器和写入器 步骤2->读卡器、处理器和写入器

  • 你能建议最好的结构吗?

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


    当您有其他作业时,请创建与步骤3结构类似的新包,这取决于您希望如何构造系统:

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

    • 读写器形成了一个可重用组件库,因此我将把它们放在单独的包中,并在需要它们的步骤中(重新)使用它们
    • 听众也可以与读者/作者属于同一类
    • 有些步骤也可以重用(如清理目录或下载文件等commons Tasklet),因此这些步骤也可以看作是可重用的组件

    最后,jobs是您需要找出构造/打包它们的最佳方式的地方(每个jobs有一个jar,或者同一个jar中有多个jobs,等等)。

    感谢Akki的回复,你的意思是我应该为每个作业创建一个新的包,它的读处理器和写器我可以把它放在里面吗?当你在一个作业中有多个步骤的时候呢?您是否将步骤的所有读取器都保存在Reader下的一个文件夹中?是的,对于每个作业,请将其保存在不同的包中,并且与读取器相关的所有内容都保存在该特定作业的Reader中。作业步骤保留在该作业的配置中。您可以在作业中添加多个步骤,如读卡器、处理器和写入器(您也可以根据需要配置重试等)。