Spring Batch--jobs

 

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


    引用 Spring Batch XML命名空间


  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="
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

  ">
   <batch:job id="importProductsJob">
   (...)
   </batch:job>
  </beans>


 Spring Batch XML 的特点


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


   
   
  <batch:job id="importProductsJob">
   (...)
   <batch:step id="readWriteStep">
    <batch:tasklet transaction-manager="transactionManager">
     <batch:chunk
     reader="productItemReader"
     processor="productItemProcessor"
     writer="productItemWriter"
     commit-interval="100"/>
    </batch:tasklet>
   </batch:step>
  </batch:job>
  
     以上的元素我们就可以用了定义一个具体的Job,包含了读取,处理,写文件等逻辑.当然上面的例子还是一个比较粗的配置.接下来我们将深入Job的具体配置以及它的各种属性特点.这里我们主要跟大家分享的是Job的三个比较常用的属性 restartable,incrementer,job-repository


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


  <batch:job id="importProductsJob" restartable="false">
   (...)
  </batch:job>


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


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值