使用SpringBatch构建企业级批处理应用第1部分.docx

使用SpringBatch构建企业级批处理应用第1部分.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Spring Batch构建企业级批处理应用 第1部分 引言 总述 本系列文章旨在通过示例搭建以及特性介绍,详细讲述如何利用 Spring Batch 开发企业批处理应用。本 系列文章共分为三部分,第一部分初步介绍了批处理以及 Spring Batch的相关概念,同时搭建了一个简 单的基于Spring Batch的批处理应用。第二部分介绍了 Step Flow 以及并发支持。第三部分则主要介绍 了 Spring Batch对任务监控的支持。下面让我们进入第一部分内容。 什么是批处理 在现代企业应用当中,面对复杂的业务以及海量的数据,除了通过庞杂的人机交互界面进行各种处理外, 还有一类工作,不需要人工干预,只需要定期读入大批量数据,然后完成相应业务处理并进行归档。这类 工作即为批处理” 从上面的描述可以看出,批处理应用有如下几个特点: ? 数据量大,少则百万,多则上亿的数量级。 ? 不需要人工干预,由系统根据配置自动完成。 ? 与时间相关,如每天执行一次或每月执行一次。 同时,批处理应用又明显分为三个环节: ? 读数据,数据可能来自文件、数据库或消息队列等 ? 数据处理,如电信支撑系统的计费处理 ? 写数据,将输岀结果写入文件、数据库或消息队列等 因此,从系统架构上,应重点考虑批处理应用的事务粒度、日志监控、执行、资源管理(尤其存在并发的 情况下)。从系统设计上,应重点考虑数据读写与业务处理的解耦,提高复用性以及可测试性。 什么是 Spring Batch Spring Batch 作为Spring的子项目,是一款基于 Spring的企业批处理框架。通过它可以构建出健壮的 企业批处理应用。Spring Batch 不仅提供了统一的读写接口、丰富的任务处理方式、灵活的事务管理及并 发处理,同时还支持日志、监控、任务重启与跳过等特性,大大简化了批处理应用开发,将开发人员从复 杂的任务配置管理过程中解放岀来,使他们可以更多地去关注核心的业务处理过程。 另外我们还需要知道,Spring Batch 是一款批处理应用框架,不是调度框架。它只关注批处理任务相关的 问题,如事务、并发、监控、执行等,并不提供相应的调度功能。因此,如果我们希望批处理任务定期执 行,可结合Quartz等成熟的调度框架实现。 下面将通过一个示例详细介绍如何使用 Spring Batch 搭建批处理应用。这个示例比较简单,对系统中所 有用户发送一封缴费提醒通知。此处,我们简单地将缴费提醒输岀到控制台。当然,随着介绍的深入,我 将逐渐丰富该功能,使其最终完整展示 Spring Batch的各种特性。 回页首 环境搭建 首先,从 Spring官方网站下载 Spring Batch 发布包(见 参考资源)。本文基于 Spring Batch 2.1.6 (当 前最新版本为 2.1.8 )以及Spring 2.5.6 版本构建。我们可以看到 Spring Batch 共包含spring-batch-core 和spring-batch-infrastructure 两个包。spring-batch-core 主要包含批处理领域相关类,而 spring-batch-infrastructure 提供了一个基础访问处理框架。 接下来,让我们新建一个 Eclipse工程,并将 Spring Batch 以及Spring相关包添加到依赖环境,如 图 1所示 图1.依赖环境 环境搭建完成后,让我们看一下如何一步步构建一个批处理应用。 回页首 构建应用 如引言”中所述Spring Batch按照关注点的不同,将整个批处理过程分为三部分:读、处理、写,从而将 批处理应用进行合理解耦。同时, Spring Batch 还针对读、写操作提供了多种实现,如消息、文件、数据 库。对于数据库,还提供了 Hibernate、iBatis、JPA等常见ORM框架的读、写接口支持。 对象定义 首先我们需要编写用户以及消息类,比较简单,如清单 1和 清单2所示: 清单1. User 类 package org.springframework.batch.sample; public class User { private String name; private Integer age; public String getName() {return name;} public void setName(String name) { = name;} public Integer getAge() {return age;} public void setAge(Integer age) {this.age = age;} 清单2. Message 类 package org.springframew

您可能关注的文档

文档评论(0)

kunpengchaoyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档