Spring Batch Cloud Sample

本文介绍了SpringBatch的基本概念和技术实现,以及其逻辑架构和执行过程,并通过一个简单的示例项目展示了如何实现批量数据处理。

      由于本人一直是C like(C++, C# )语言拥护者,对于Java及其一些框架不是很熟悉,所以难免描述不是很准确,这个例子是基于Spring MVC的一个例子,刚看到题目,对于Spring Batch 一概不知,以为是自己随便起的一个名字,后来才知道这是一个开源项目,网址在这里,http://static.springsource.org/spring-batch-admin/trunk/spring-batch-admin-sample/source-repository.html   

     首先简单介绍一下Spring Batch, 我们都知道Windows下有批处理应用,就是写一些 DOS 脚本来进行多批次的命令执行,类似的,Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。

     Spring Batch 的技术实现:  1)利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。2)明确分离批处理的执行环境和应用。3)提供核心的,共通的接口。4)提供开箱即用(out of the box)的简单的默认的核心执行接口。5)提供Spring框架中配置、自定义、和扩展服务。6)所有存在的核心服务可以很容的被替换和扩展,不影响基础层。7)提供一个简单的部署模式,利用Maven构建独立的Jar文件。

     Spring Batch的逻辑架构分为应用层,内核层,基础架构层,最上层应用包括所有的批处理作业,内核层包含需要启动Batch的比如JobLauncher等,最下面基础架构层包含了通用的读写类(ItemReader, ItemWriter)。

     Spring Batch的执行过程: 每个 Spring Batch都会包含一个Job。Job里面装了若干Step,Batch中实际工作的也就是Step,至于Step具体做什么,就是读写数据和处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,ItemWriter用来写数据) 。JobLauncher用来启动Job,JobRepository是上述处理提供的一种持久化机制,它为JobLauncher,Job,和Step实例提供CRUD操作。外部控制器调用JobLauncher启动一个Job,Job调用自己的Step去实现对数据的操作,Step处理完成后,再将处理结果一步步返回给上一层,这就是Batch处理实现的一个简单流程。

     说了那么多,开始下载源代码并且导人到工程里面,源代码下载地址:https://github.com/SpringSource/cloudfoundry-samples/tree/master/batch

     如果你也是对Spring不是很熟悉,推荐使用STS(SpringSource Tool Suite), 这是一个Eclipse Bundle,可以省去你在Eclipse 里面配置各种依赖jar包的麻烦。

    打开STS以后,文件->新建-> Spring Temple Project ,然后选择Simple Spring Batch Project,这样一个Spring Batch 项目就建立好了,包含了所有的依赖和简单的输入输出任务配置。然后导入下载好的示例代码,目录结果如下:

    

    示例代码中展示了简单的读写,实现很简单,只要实现 ItemReader和ItemWrite定义好的接口即可:

     


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值