最新版本的Spring Batch框架支持工作划分(job partitioning)、远程分割(remote chunking)及基于注解的配置。Spring Batch开发团队最近发布了batch框架的2.0版。新版本还新增了诸如对Java 5的支持及非顺序执行等特性。

这一版别的新特性可以分为四类:对Java 5的支撑、非次序履行、增强的可伸缩性以及注解。

Spring Batch 2将支撑作业区分和根据注解的装备  2.0 配置 工作划分 第1张

对Java 5的支撑:

Spring Batch 2.0版支撑Java 5泛型和参数化类型,以便可以在编译时查看类型安全性。例如,ItemReader接口现在有了一个类型安全的read办法。

非次序履行:

这其实包含3个新特性——条件、暂停和并行履行。凭仗这些特性,各进程可以按非线性次序履行。即便作业(Job)中的某个进程(step)失利,整个作业也仍然可以完结。有条件履行(Conditional execution)依据***一个ExitStatus把作业区分为不同的分支。这也包含FAILED状态下履行分支使命的才能,也就是说一个进程的失利不再是整个作业的丧命过错。暂停履行(Pause execution)可以用来中止或等候外部命令(explicit instruction),这在事务规矩需求人工干预以查看事务要害数据是否有用时十分有用。而关于多进程的并行履行(parallel execution),各进程间相互独立,用户可以自行指定哪些分支可以并行履行。

可伸缩性:

新版选用两种办法支撑多进程的并行履行:长途切割及区分。长途切割是在对数据结构没有任何翔实认知的情况下对一个进程的特定作业进行区分的一项技能。任何输入源都可以动态切割,只需求经过单一进程读取该输入源,并将其作为一整块发送给长途作业进程即可。长途作业进程完成了listener形式,对恳求作出呼应,处理数据且异步发回应对。恳求和应对的传输有必要是持久性的、有确保的,且只要单一的顾客,这些特性在一切JMS完成中都已具有。Spring Batch正是在Spring Integration基础上构建的长途切割特性,因此它底子不必关怀音讯中间件的实践完成。

区分是完成可伸缩性的另一种办法,相比之下,它需求知道输入数据的结构,比方主键的规模、或许要处理文件的姓名。这种形式的优点是,分区中的每个元素的处理器都可以看作是正常Spring Batch作业中的单个进程。它们不必完成任何特定形式,因此易于装备和测验。区分比长途切割更具伸缩性,这是由于在同一当地读取一切输入数据时不会发生序列化瓶颈。在Spring Batch 2.0 中,区分由两个接口支撑:PartitionHandler 和StepExecutionSplitter。

根据注解的装备:

Spring Batch组件如reader、writer、processor、listener,都可以运用注解来装备,也都可以刺进到使命的某个进程中去。这是经过针对Spring Batch的XML命名空间来完成的。

新版别在使用程序监测方面也有一些改变,包含对履行或越过项目的计数、记账;在每个阶段对一切项目读取、处理和写入的切割计数等方面的计算。关于那些没有把履行区分红读取、处理、写入等各个进程(或tasklet)的使用来说,这些计算更多的是为了归纳了解而绝非必需,但大都情况下,这总比只存储项目总数更可取。

SpringSource方案在企业级Batch产品中供给区分和长途切割、还有办理和调度等方面的完好的运行时解决方案。其未来的路线图还包含为Spring Batch 2.1添加Spring 3.0依靠(一起保存2.5.6为可选)。正是出于这样的方案,新版别中包括的特性以作业和进程的装备居多,尤其是在装备进程中运用了Spring Expression Language (EL)的推迟绑定(late binding),该推迟绑定的语法和Spring Batch 2.0中的根本相同,仅仅所供给的特性更多、灵活性更大。

【修改引荐】

  1. 实例阐明怎么集成Spring和Struts
  2. 浅谈Struts+Hibernate+Spring的整合办法
  3. Spring中XML装备的12个技巧
转载请说明出处
知优网 » Spring Batch 2将支撑作业区分和根据注解的装备

发表评论

您需要后才能发表评论