Spring Batch 5.0.0-M7 已发布。
Spring Batch 是一个轻量级且功能全面的批处理框架,使用 Spring 和 Java 编写离线和批处理应用程序,旨在为开发对企业系统日常运行至关重要的批处理应用程序提供支持。
Spring Batch 5.0.0-M7 的更新内容集中在改进 Spring Batch 中的作业参数处理,此版本引入了两个主要的变化。
- 支持使用任意类型作为作业参数
- 改进作业参数转换
支持使用任意类型作为作业参数
在版本 4 之前,Spring Batch 仅支持 4 种类型可以用作作业参数,分别是long
, double
, String
和Date
。虽然这对于在框架层面简化作业参数处理很方便,但在用户方面却受到了限制。例如,如果想使用一个boolean
或自定义类型作为作业参数怎么办?这需要对 Spring Batch 中支持的类型之一进行额外的转换——会给用户带来不便。
此版本中增加了对使用任何类型作为作业参数的支持。这种改进背后的主要变化如下:
---public class JobParameter implements Serializable {
+++public class JobParameter<T> implements Serializable {
--- private Object parameter;
+++ private T value;
--- private ParameterType parameterType;
+++ private Class<T> type;
}
改进作业参数转换
v4 中作业参数的默认注解按照下面的方式来表示:
[+|-]parameterName(parameterType)=parameterValue
其中parameterType
属于[string,long,double,date]
的值之一。虽然这种表示法十分简洁,但它显示出一些限制,因为它不能很好地处理环境变量并且对 Spring Boot 不友好。
v5 更改了默认表示法,如下所示:
parameterName=parameterValue,parameterType,identificationFlag
其中parameterType
是参数类型的完全限定名称。
详情查看 release notes。