📅  最后修改于: 2020-11-11 06:48:35             🧑  作者: Mango
以下是Spring Batch体系结构的示意图。如图所示,该体系结构包含三个主要组件,即应用程序,批处理核心和批处理基础结构。
应用程序-该组件包含所有作业和我们使用Spring Batch框架编写的代码。
批处理核心-该组件包含控制和启动批处理作业所需的所有API类。
批处理基础结构-此组件包含应用程序和批处理核心组件使用的读取器,编写器和服务。
下图显示了Spring Batch的不同组件以及它们如何相互连接。
在Spring Batch应用程序中,作业是要执行的批处理过程。它从头到尾无间断运行。该作业被进一步分为步骤(或一个作业包含步骤)。
我们将使用XML文件或Java类在Spring Batch中配置作业。以下是Spring Batch中Job的XML配置。
在标签
可重新启动-通常,当作业正在运行时,我们尝试重新启动它,这被视为重新启动,并且它将重新启动。为避免这种情况,您需要将可重启值设置为false ,如下所示。
步骤是作业的独立部分,其中包含定义和执行作业的必要信息(其部分)。
如图所示,每个步骤都由ItemReader,ItemProcessor(可选)和ItemWriter组成。一项工作可能包含一个或多个步骤。
项目读取器将数据从特定来源读取到Spring Batch应用程序中,而项目写入器将数据从Spring Batch应用程序写入特定目的地中。
Item处理器是一个类,其中包含处理代码,用于处理读取到Spring批处理中的数据。如果应用程序读取“ n”条记录,则处理器中的代码将在每条记录上执行。
如果没有给出读写器,则一个tasklet充当SpringBatch的处理器。它仅处理单个任务。例如,如果我们要编写一个包含简单步骤的作业,即从MySQL数据库读取数据并将其处理并将其写入文件(平面),则该步骤将使用-
从MySQL数据库读取的读取器。
写入平面文件的作家。
一个定制处理器,可以按照我们的意愿处理数据。
job>
Spring Batch提供了很多读者和作家。使用这些预定义的类,我们可以为它们定义bean。在接下来的章节中,我们将更详细地讨论读者和作家。
Spring Batch中的Job资料库为JobLauncher,Job和Step实现提供创建,检索,更新和删除(CRUD)操作。我们将在XML文件中定义作业存储库,如下所示。
除了id之外,还有其他一些选项(可选)。以下是带有所有选项及其默认值的作业库配置。
内存中的存储库-如果您不想将Spring Batch的域对象保留在数据库中,则可以配置jobRepository的内存中版本,如下所示。
JobLauncher是一个接口,可以使用给定的参数启动Spring Batch作业。 SampleJoblauncher是实现JobLauncher接口的类。以下是JobLauncher的配置。
JobInstance表示作业的逻辑运行;它是在我们运行作业时创建的。每个作业实例通过作业的名称和运行时传递给它的参数来区分。
如果JobInstance执行失败,则可以再次执行相同的JobInstance。因此,每个JobInstance可以具有多个作业执行。
JobExecution和StepExecution是作业/步骤执行的表示。它们包含作业/步骤的运行信息,例如开始时间(作业/步骤),结束时间(作业/步骤)。