图片来源 : Spring Source
Spring Batch是一个用于批处理的开源框架–执行一系列作业。 Spring Batch提供用于读取/写入资源,事务管理,作业处理统计信息,作业重新启动和分区技术的类和API,以处理大量数据。
以下Spring Batch教程和示例已通过测试:
- Spring Core 3.2.2。发布
- Spring Batch 2.2.0。发布
PS Spring Batch是Spring产品组合的一部分。
1.快速指南
一个简单的批处理作业,并使用命令行运行。
- Spring Batch Hello World示例
关于Spring批处理的简短描述,并创建一个作业以从CSV文件读取数据,对其进行处理并将其写入XML文件(JAXB)。 - Spring Batch TaskletStep示例
批处理作业完成后清理资源的示例。 - 使用CommandLineJobRunner运行Spring Batch作业
使用命令行运行Spring批处理作业。
2. ItemReader,ItemProcessor,ItemWriter
很少有示例显示使用Spring批处理类读取/写入资源(csv,xml和数据库)。
- Spring Batch示例– CSV文件到MySQL数据库
从CSV文件读取数据并将其写入MySQL数据库,作业元数据存储在数据库中。 - Spring Batch示例– XML文件到MongoDB数据库
从XML文件(XStream)读取数据并将其写入nosql数据库MongoDB,还对批处理作业进行单元测试。 - Spring Batch示例– XML文件到CSV文件
从XML文件(JAXB2)读取数据,使用ItemProcessor处理并将其写入CSV文件。 它还显示了如何通过JAXB2将Date和BigDecimal数据类型转换为对象。 - Spring Batch示例– MySQL数据库到XML
从MySQL数据库读取数据并将其写入XML文件(XStream),也使用jobParameters。 - Spring Batch MultiResourceItemReader示例
一个ItemReader可以读取多个文件。
3.调度程序
使用调度程序框架运行批处理作业。
- Spring Batch + Spring TaskScheduler示例
Spring TaskScheduler安排一个批处理作业每5秒运行一次。 - Spring Batch + Quartz Scheduler示例
集成Quartz计划批处理作业每10秒运行一次。
4.单元测试
- Spring Batch单元测试示例
如何对批处理作业或单个步骤进行单元测试。
5.提前
- Spring Batch分区程序示例
多个线程来处理数据范围。 - Spring Batch侦听器示例
截取批处理作业的步骤执行的示例。
6. Spring Batch常见问题解答
Spring Batch中的一些常见问题和解答。
- 如何在BeanWrapperFieldSetMapper中转换日期
- Spring Batch:作业实例已经存在,并且对于参数= {}已完成
- Spring Batch元数据表不是自动创建的吗?
- NoSuchBeanDefinitionException:没有类型为JobLauncherTestUtils的合格bean
- 在BeanExpressionContext类型的对象上找不到jobParameters