Spring-Batch

在 Spring Batch 中访问 JobParameter

1、概览 Spring Batch 是一个强大的 Java 批处理框架,因此在数据处理活动和定时任务运行中被广泛选择。根据业务逻辑的复杂程度,作业可以依赖不同的配置值和动态参数。 本文将带你了解如何使用 JobParameter 以及如何从基本的批处理组件中访问它们。 2、Demo 项目 我们将为药房服务开发一个 Spring Batch。主要业务任务是查找即将过期的药品,根据销售情况计算新价格,并通知消费者即将过期的药品。此外,我们将从内存中的 H2 数据库读取数据,并将所有处理细节写入日志,以简化实现过程。 2.1、依赖 要开始演示应用,需要添加 Spring Batch 和 H2 依赖: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.224</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> <version>3.2.0</version> </dependency> 可以在 Maven Central Repository 中找到最新的 H2 和 Spring Batch 版本。 2.2、准备测试数据 首先在 schema-all.sql 中定义 Schema: DROP TABLE medicine IF EXISTS; CREATE TABLE medicine ( med_id VARCHAR(36) PRIMARY KEY, name VARCHAR(30), type VARCHAR(30), expiration_date TIMESTAMP, original_price DECIMAL, sale_price DECIMAL ); 初始测试数据定义在 data.

Spring Boot 整合 Spring Batch

1、概览 Spring Batch 是一个强大的批处理框架,可用于开发健壮的批处理应用。 上一篇教程 介绍了 Spring Batch,本文将在此基础上带你了解如何使用 Spring Boot 设置和创建一个基本的批处理驱动应用。 2、Maven 依赖 首先,在 pom.xml 中添加 spring-boot-starter-batch 和 h2 依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.1.214</version> <scope>runtime</scope> </dependency> 3、定义简单的 Spring Batch Job 创建一个 Job,从 CSV 文件导入 coffee 清单,使用自定义 Processor 对其进行转换,并将最终结果存储到内存数据库中。 3.1、开始 首先,程序入口: @SpringBootApplication public class SpringBootBatchProcessingApplication { public static void main(String[] args) { SpringApplication.run(SpringBootBatchProcessingApplication.class, args); } } 可以看到,这是一个标准的 Spring Boot 应用。为了简单,一切配置都是使用默认值。 在 src/main/resources/application.properties 文件中定义如下属性: file.input=coffee-list.csv 该属性包含输入 coffee 列表的位置。每一行都包含 coffee 的品牌、产地和一些特征:

Spring Batch 教程

1、概览 本文将带你深入了解 Spring Batch。它是一个批处理框架,专为执行批处理作业而设计。 当前的 5.0.0 版本支持 Spring 6 和 Java 17。 2、工作流基础 Spring Batch 遵循传统的批处理架构,其中 Job Repository 负责 Job 的调度和交互。 一项工作(Job)可以有多个步骤(Step)。每个步骤通常都遵循 读取数据、处理数据 和 写入数据 的顺序。 当然,框架会在这里完成大部分繁重的工作,尤其是在处理 Job 的底层持久化时 - 本文使用 h2 作为 Job Repository。 2.1、应用示例 在本例中,我们需要将一些财务交易数据从 CSV 迁移到 XML。 输入文件的结构非常简单。 每行包含一笔交易,由用户名(username)、用户 ID(userid)、交易日期(transaction_date)和金额(transaction_amount)组成: username, userid, transaction_date, transaction_amount devendra, 1234, 31/10/2015, 10000 john, 2134, 3/12/2015, 12321 robin, 2134, 2/02/2015, 23411 3、Maven 依赖 本项目需要依赖 Spring Core、Spring Batch 和 H2 数据库: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>6.