Spring Batch--jobs

 

    在之前的文章我们已经对Spring Batch有了一个初步的了解,跑批利器框架SpringBatch的大体介绍已经结束,接下来我们将深入Spring Batch的一些内部高级配置主题,能够让我们更高效的去利用这个跑批利器.


    引用 Spring Batch XML命名空间


  
  http://www.springframework.org/schema/beans
"
  xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
  xmlns:batch="
http://www.springframework.org/schema/batch"
  xsi:schemaLocation="
http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/batch
  http://www.springframework.org/schema/batch/spring-batch.xsd

  ">
   
   (...)
   

  


 Spring Batch XML 的特点


     Spring Batch XML是Spring Batch配置的核心,它主要是用来配置批量的框架,具体的实体配置就需要Spring的特性去配置.Spring Batch XML提供很便利的方式跟标准的Spring XML进行交互.下图描述了两者之间的交互关系.
         Spring Batch--jobs_第1张图片
   
    配置jobs
    在我们之前的文章提到过的,Spring Batch的核心就是任务和步骤,它们描述了一个批量的具体执行过程,我们已经通过一个简单的例子来展示这个过程,接下来便是详细的配置信息和结构.
    job实体的层次结构我们可以通过下图进行直观的了解,SpringBatch的配置是这里最广泛的配置,其次就是job,Step,Tasklet,Chunk.
    
     我们也可以通过下面这段代码的方式来展现上图的内容.


   Spring Batch--jobs_第2张图片
   
  
   (...)
   
    
           reader="productItemReader"
     processor="productItemProcessor"
     writer="productItemWriter"
     commit-interval="100"/>
    

   

  

  
     以上的元素我们就可以用了定义一个具体的Job,包含了读取,处理,写文件等逻辑.当然上面的例子还是一个比较粗的配置.接下来我们将深入Job的具体配置以及它的各种属性特点.这里我们主要跟大家分享的是Job的三个比较常用的属性 restartable,incrementer,job-repository


      restartable 属性定义了SpringBatch是否要重启一个job ,如果是false的话Spring Batch只能执行一次,如果你尝试再执行一遍此job变回抛出异常JobRestartException,下面的代码片段是具体的示例


  
   (...)
  


     incrementer提供一个方面的方式来创建一个job参数的值,需要注意的是JobLauncher是不需要这个的,因为你必须在启动的时候提供所有的参数.


     job-repository是指一个实体定义具体哪个任务仓库来运行这个job.
 

你可能感兴趣的:(架构设计)