spring batch入门实例 (一)

2014-11-24 11:33:07 · 作者: · 浏览: 25

spring batch入门实例
为什么要进行批处理,哪些场合适合进行批处理?
[plain] view plaincopyprint 企业领域的许多应用需要在严格的任务环境下,进行大量的商业计算。这些商业计算包括在大数据集中进行自动而又复杂的计算,而且这些计算不需要人工的干预。这些任务中经典的就是基于时间驱动的事件的复杂商业规则的周期性的应用,在大数据集上的重复计算,或者从内部、外部系统接收到的信息的集成,这些信息需要格式化、校验、像一个事务一样处理。批处理能为公司每天处理10亿计的数据。

企业领域的许多应用需要在严格的任务环境下,进行大量的商业计算。这些商业计算包括在大数据集中进行自动而又复杂的计算,而且这些计算不需要人工的干预。这些任务中经典的就是基于时间驱动的事件的复杂商业规则的周期性的应用,在大数据集上的重复计算,或者从内部、外部系统接收到的信息的集成,这些信息需要格式化、校验、像一个事务一样处理。批处理能为公司每天处理10亿计的数据。Spring batch官方的文档中是这样介绍自己的:
[plain] view plaincopyprint Spring batch是一个轻量级的,易理解的批处理框架,它被设计成用于健壮的批处理应用,特别是企业系统的日常操作。Spring batch构建于产业化的、基于POJO的开发探索,能轻松地使用Spring框架的扩展能力,必要的时候,开发者也能很轻松地进行扩展。Spring batch不是一个任务框架。有很多的商业化的或者开源的任务框架,比如:Quartz,Tivoli,Control-M,等等。Spring batch是用来和这些协同工作,而不是取代它们。

Spring batch是一个轻量级的,易理解的批处理框架,它被设计成用于健壮的批处理应用,特别是企业系统的日常操作。Spring batch构建于产业化的、基于POJO的开发探索,能轻松地使用Spring框架的扩展能力,必要的时候,开发者也能很轻松地进行扩展。Spring batch不是一个任务框架。有很多的商业化的或者开源的任务框架,比如:Quartz,Tivoli,Control-M,等等。Spring batch是用来和这些协同工作,而不是取代它们。

这是一篇spring batch的入门实例,如果你对spring的一些基本概念还不是很了解,可能会有难度,本文也假设你已经对maven有一些了解。
首先新建一个maven项目,注意是jar项目,pom.xml如下:
[html]
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.test.springbatch
spring-batch
0.0.1-SNAPSHOT
spring-batch
spring-batch

UTF-8
3.0.7.RELEASE




junit
junit
4.11
test


org.slf4j
slf4j-api
1.6.1


org.slf4j
slf4j-log4j12
1.6.1


log4j
log4j
1.2.16


org.springframework
spring-core
${org.springframework.version}


org.springframework.batch
spring-batch-core
2.1.9.RELEASE


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.test.springbatch
spring-batch
0.0.1-SNAPSHOT
spring-batch
spring-batch

UTF-8
3.0.7.RELEASE




junit
junit
4.11
test


org.slf4j
slf4j-api
1.6.1


org.slf4j
slf4j-log4j12
1.6.1


log4j
log4j
1.2.16


org.springframework
spring-core
${org.springframework.version}


org.springframework.batch
spring-batch-core
2.1.9.RELEASE



spring-batch的配置文件(applicationContext-batch-myfirstbatch.xml)如下:
[html]
beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:bean="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.1.xsd">
class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">


class="o