什么是 Spring Batch?

关注者
9
被浏览
27,062
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

Spring Batch是一个基于Spring的企业级批处理框架,按照我师父的说法,所有基于Spring的框架都是使用了spring的IoC特性,然后加上自己的一些处理规则。因此,要理解Spring Batch的设计和使用,首先需要理解批处理的机制和特点。

所谓企业批处理就是指在企业级应用中,不需要人工干预,定期读取数据,进行相应的业务处理之后,再进行归档的这类操作。从上面的描述中可以看出,批处理的整个流程可以明显的分为3个阶段:

1、读数据

2、业务处理

3、归档结果数据

另外,从定义中可以发现批处理的一个重要特色就是无需人工干预、定期执行,因此一个批处理框架,需要关注事务的粒度,日志监控,执行方式,资源管理,读数据,处理数据,写数据的解耦等方面。

SpringBatch为我们提供了什么呢?

1、统一的读写接口

2、丰富的任务处理方式、

3、灵活的事务管理及并发处理

4、日志、监控、任务重启与跳过等特性

注意,Spring Batch未提供关于批处理任务调度的功能,因此如何周期性的调用批处理任务需要自己想办法解决,就Java来说,Quartz是一个不错的解决方案,或者写脚本处理之。