Spring Batch的概念和作用是什么

  

这篇文章主要讲解了“Spring Batch的概念和作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Batch的概念和作用是什么”吧!

目录
  • 一、Spring Batch的概念知识

    • 1.1、分层架构

    • 1.2、关键概念

      • 1.2.1、JobRepository

      • 1.2.2、任务启动器JobLauncher

      • 1.2.3、任务Job

      • 1.2.4、步骤Step

      • 1.2.5、输入——处理——输出

  • 二、代码实例

    • 2.1、基本框架

      • 2.2、输入——处理——输出

        • 2.2.1、读取ItemReader

        • 2.2.2、处理ItemProcessor

        • 2.2.3、输出ItremWriter

      • 2.3、Step

        • 2.4、Job

          • 2.5、运行

          • 三、监听Listener

            一、Spring Batch的概念知识

            1.1、分层架构

            Spring Batch的分层架构图如下:

            Spring Batch的概念和作用是什么

            可以看到它分为三层,分别是:

            • Application应用层:包含了所有任务batch jobs和开发人员自定义的代码,主要是根据项目需要开发的业务流程等。

            • Batch Core核心层:包含启动和管理任务的运行环境类,如JobLauncher等。

            • Batch Infrastructure基础层:上面两层是建立在基础层之上的,包含基础的读入reader写出writer、重试框架等。

            1.2、关键概念

            理解下图所涉及的概念至关重要,不然很难进行后续开发和问题分析。

            Spring Batch的概念和作用是什么

            1.2.1、JobRepository

            专门负责与数据库打交道,对整个批处理的新增、更新、执行进行记录。所以Spring Batch是需要依赖数据库来管理的。

            1.2.2、任务启动器JobLauncher

            负责启动任务Job

            1.2.3、任务Job

            Job是封装整个批处理过程的单位,跑一个批处理任务,就是跑一个Job所定义的内容。

            Spring Batch的概念和作用是什么

            上图介绍了Job的一些相关概念:

            • Job:封装处理实体,定义过程逻辑。

            • JobInstanceJob的运行实例,不同的实例,参数不同,所以定义好一个Job后可以通过不同参数运行多次。

            • JobParameters:与JobInstance相关联的参数。

            • JobExecution:代表Job的一次实际执行,可能成功、可能失败。

            所以,开发人员要做的事情,就是定义Job

            1.2.4、步骤Step

            Step是对Job某个过程的封装,一个Job可以包含一个或多个Step,一步步的Step按特定逻辑执行,才代表Job执行完成。

            Spring Batch的概念和作用是什么

            通过定义Step来组装Job可以更灵活地实现复杂的业务逻辑。

            1.2.5、输入——处理——输出

            所以,定义一个Job关键是定义好一个或多个Step,然后把它们组装好即可。而定义Step有多种方法,但有一种常用的模型就是输入——处理——输出,即Item ReaderItem ProcessorItem Writer。比如通过Item Reader从文件输入数据,然后通过Item Processor进行业务处理和数据转换,最后通过Item Writer写到数据库中去。

            Spring Batch的概念和作用是什么