在上篇文章中我们知道批处理应用程序的要求,当然,具体实现的方式有很多,小到脚本和自己写个批量,大到专业的批量处理系统.那么如何选择一个合适的一个呢?SpringBatch可以作为众多选择中一个不错的选择.
根据相关资料介绍,我们可以对SpringBatch进行一个整体了解.
Spring Batch是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。SpringBatch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使的已经使用 Spring框架的开发者或者企业更容易访问和利用企业服务。
Spring Batch供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch同样提供了高级功能和特性来支持,比如分区功能、远程功能。总之,通过 Spring Batch 能够支持简单的、复杂的和大数据量的批处理作业。
需要注意的是Spring Batch是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如Quartz、TCron 等)可以使用。
SpringBatch主要特点:
基于Spring框架基础;面向批量处理; 丰富读写组件;健壮性和可靠性.
SpringBatch技术目标:
1、利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。
2、明确分离批处理的执行环境和应用。
3、提供核心的,共通的接口。
4、提供开箱即用(outof the box)的简单的默认的核心执行接口。
5、提供Spring框架中配置、自定义、和扩展服务。
6、所有存在的核心服务可以很容的被替换和扩展,不影响基础层。
7、提供一个简单的部署模式,利用Maven构建独立的Jar文件。
通过SpringBatch,读者可以直接从最佳实践中受益。同时也受益于许多现成的组件.SpringBatch读写技术支持的数据源包括数据库,和文件.具体技术包括JDBC,Hibernate,JPA,IBATIS,Flat file,XML等等.
参考资料:Spring Batch In Action