Spring Batch学习笔记二

时间:2014-06-19 00:47:05   收藏:0   阅读:469

此系列博客皆为学习Spring Batch时的一些笔记;

Spring Batch的架构

一个Batch Job是指一系列有序的Step的集合,它们作为预定义流程的一部分而被执行;

Step代表一个自定义的工作单元,它是Job的主要构件块;每一个Step由三部分组成:ItemReader、ItemProcessor、ItemWriter;这三个部分将执行在每一条被处理的记录上,ItemReader读取每一条记录,然后传递给ItemProcessor处理,最后交给ItemWriter做持久化;ItemProcessor不是必须的,一个Step可以仅仅包含ItemReader和ItemWriter;如果你不需要去读写任何数据,你可以仅仅在一个Step中包含一个Tasklet(等价于ItemProcessor);

组成Spring Batch的一些相关的类和接口:

  1. org.springframework.batch.core.Job:表示一个Job,同时也提供了执行Job的能力;
  2. org.springframework.batch.core.Step:表示一个step,同时也提供了执行Step的能力;
  3. org.springframework.batch.item.ItemReader<T>:提供了读取数据的能力;
  4. org.springframework.batch.item.ItemProcessor<T>:我们可以通过它应用业务逻辑到每一条要处理的数据;
  5. org.springframework.batch.item.ItemWriter<T>:提供了写数据的能力

Spring Batch通过这种方式构建一个Job的优点在于解耦每一个Step到它自己独立的处理器当中;每一个Step负责得到数据、应用业务逻辑到这些数据、写数据到适当的位置;

运行Job

首先看下面这个图,描述了Job的各个组件及其关系:

bubuko.com,布布扣

你会发现JobRepository这个组件会和多个其它组件发生联系,它代表一个数据存储(内存或者外部数据库),被用来持久化Job或Step执行过程中用到的信息(用JobExecution和StepExecution来表示);

Job通过JobLauncher开始执行,JobLauncher通过检查JobRepository来核实Job在之前是否运行过,并且验证传入到Job的参数,最后执行Job;

Job的执行流程和Step非常相似,Job首先实行每一个它包含的Step,当数据处理完成后,它将执行的结果更新到JobRepository的JobExecution和StepExecution中;Step首先通过ItemReader读取每一个它要处理的数据项,交由StepPrpcessor处理,同时更新JobRepository中的StepExecution数据。一些信息如Commit次数、开始结束时间都会被存储到JobRepository中,当一个Job/Step完成后,在JobRepository中相关的执行信息会被更新至最终状态。

并行运算

在Spring Batch中,并行可以通过以下四种方式实现: 

实例Job

Spring Batch提供了很多简单的Job实例,让你在开发你自定义的批处理应用程序时参考:

 

Spring Batch学习笔记二,布布扣,bubuko.com

原文:http://www.cnblogs.com/cdutedu/p/3789396.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!