数据处理---Spring Batch之基础

      Spring框架提供了强大的底层结构,基于此,Spring出现了很多方面的应用。Spring Batch就是其一,它是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。需要说明的是,spring batch并不提供定时之类的功能,那是quartz等做的事情

     使用spring Batch,可以使程序员专注于业务处理,让Spring框架管理流程。
     明确分离批处理的执行环境和应用。
     提供核心的,共通的接口。
     提供开箱即用(out of the box)的简单的默认的核心执行接口。
     提供Spring框架中配置、自定义、和扩展服务。
     所有存在的核心服务可以很容的被替换和扩展,不影响基础层。

     Spring Batch里面有几个基本的概念需要明白,有了这些基础才好开始动手让job跑起来。

  •      Job就是要做的事情,很简单,通过JobLauncher.run(job, new JobParameters());来运行JOB帮助我们跑批,当然可以添加JobParameters。每个Job真正跑起来就是JobInstance
  •      一个Job由好几个步骤构成,就是Step。比如第一步做什么,第二步做什么。每个步骤里面有很多小任务,没错就是Tasklet
  •      每个步骤一般包括ItemReader,ItemProcessor,ItemWriter,这几个很好理解。Job不就是做读数据,处理数据,写数据的吗?
  •      所有的这些步骤都可以持久化,方便对整个执行情况进行跟踪,谁来做持久化呢,就是JobRepository




下面利用STS(spring tool suite)快速创建一个简单的spring batch project.

1,选择Spring Templete Project


2,选择Simple Spring Batch Project


3,输入项目名称,包名信息


4,可以看到生成的代码




一个简单的spring batch项目就有了,可以运行下ExampleJobConfigurationTests,run as JUnit,可以简单了解下整个过程

里面有个module-context.xml,就是job的配置文件。Job里面的step可以定义下一步等内容,打开文件可以图形化查看job流程。


<batch:job id="job1">
<batch:step id="step1" next="step2" >
<batch:tasklet transaction-manager="transactionManager" start-limit="100" >
<batch:chunk reader="reader" writer="writer" commit-interval="1" />
</batch:tasklet>
</batch:step>
<batch:step id="step2" >
<batch:tasklet transaction-manager="transactionManager" start-limit="100" >
<batch:chunk reader="reader" writer="writer" commit-interval="1" />
</batch:tasklet>
</batch:step>
</batch:job> 



猜你喜欢

转载自blog.csdn.net/hugolyl/article/details/51820796