开发手册 欢迎您!
软件开发者资料库

Spring Batch - Architecture

Spring Batch Architecture - 从简单和简单的步骤学习Spring Batch,从基本到高级概念,包括概述,环境,架构,应用程序,配置,读者,编写器和处理器,基本应用程序,XML到MySQL,CSV到XML,MySQL到XML,MySQL到平面文件。

以下是Spring Batch架构的图解表示.如图所示,该体系结构包含三个主要组件,即应用程序,批处理核心批处理基础结构.

Architecture

应用程序 : 该组件包含我们使用Spring Batch框架编写的所有作业和代码.

Batch Core : 此组件包含控制和启动批处理作业所需的所有API类.

批处理基础结构 : 此组件包含应用程序和批处理核心组件使用的读取器,编写器和服务.

Spring Batch的组件

下图显示了Spring Batch的不同组件以及它们如何相互连接.

Components

作业

在Spring Batch应用程序中,作业是要执行的批处理.它从头到尾不间断地运行.此作业进一步分为步骤(或作业包含步骤).

我们将使用XML文件或Java类在Spring Batch中配置作业.以下是Spring Batch中作业的XML配置.

             

批量作业在标签< job>中配置.它有一个名为 id 的属性.在这些标签中,我们定义了步骤的定义和顺序.

可重新启动 : 通常,当作业正在运行并且我们尝试再次启动时,将其视为重新启动,它将再次启动.为避免这种情况,您需要将可重新启动的值设置为 false ,如下所示.

步骤

步骤是包含必要工作的独立部分用于定义和执行作业的信息(其部分).

如图中所示,每个步骤由ItemReader,ItemProcessor(可选)和ItemWriter组成. 作业可能包含一个或多个步骤.

读者,作家和处理者

项目阅读器从特定来源将数据读入Spring Batch应用程序,而项目编写器将数据从Spring Batch应用程序写入特定目的地.

项目处理器是一个类,它包含处理读入弹簧批次的数据的处理代码.如果应用程序读取"n"记录,则处理器中的代码将在每条记录上执行.

如果没有给出读者和作者,则 tasklet 充当SpringBatch的处理器.它只处理一个任务.例如,如果我们正在编写一个简单的步骤,我们从MySQL数据库读取数据并处理它并将其写入文件(平面),那么我们的步骤使用 :

  • 从MySQL数据库读取的阅读器.

  • 写入平面文件的编写器.

  • 自定义处理器处理数据我们的愿望.

                                 

Spring Batch提供了一长串读者作家.使用这些预定义的类,我们可以为它们定义bean.我们将在接下来的章节中更详细地讨论读者作家.

JobRepository

Spring Batch中的作业存储库为JobLauncher,Job和Step实现提供创建,检索,更新和删除(CRUD)操作.我们将在XML文件中定义一个作业存储库,如下所示.

id 外,还有一些选项(可选)可用.以下是具有所有选项及其默认值的作业存储库的配置.

内存存储库 : 如果您不想在数据库中保留Spring Batch的域对象,可以配置jobRepository的内存版本,如下所示.

   

JobLauncher

JobLauncher是一个使用给定参数集来启动Spring Batch作业的接口. SampleJoblauncher 是实现 JobLauncher 接口的类.以下是JobLauncher的配置.

     

JobInstance

JobIinstance 表示作业的逻辑运行;它是在我们开始工作时创建的.每个作业实例由作业名称和运行时传递给它的参数区分.

如果JobInstance执行失败,则可以再次执行相同的JobInstance.因此,每个JobInstance可以有多个作业执行.

JobExecution和StepExecution

JobExecution和StepExecution是作业/步骤执行的表示.它们包含作业/步骤的运行信息,例如开始时间(作业/步骤),结束时间(作业/步骤).