Spring Batch
Spring Boot 提供了多个用于配合 Spring Batch 使用的便利功能,包括在启动时运行一个 Job。
在构建批处理应用时,可以自动配置以下存储:
-
In-memory
-
JDBC
每个存储都有特定的附加设置。例如,可以自定义 JDBC 存储的表前缀,如下例所示:
- Properties
- YAML
spring.batch.jdbc.table-prefix=CUSTOM_
spring:
batch:
jdbc:
table-prefix: "CUSTOM_"
要禁用 Spring Boot 的自动配置并完全控制 Spring Batch 的配置,请在你的某个 @Configuration 类上添加 @EnableBatchProcessing,或者继承 DefaultBatchConfiguration。这将使自动配置退避(back off),包括在使用基于 JDBC 的存储时对 Spring Batch 数据库 schema 的初始化。随后,可以使用 @Enable*JobRepository 注解的属性来配置 Spring Batch,而不是使用前面描述的配置属性。
要了解有关手动配置 Spring Batch 的更多信息,请参阅以下内容的 API 文档:
有关 Spring Batch 的更多信息,请参阅 Spring Batch 项目页面。
在启动时运行 Spring Batch 作业
当 Spring Boot 自动配置 Spring Batch 时,如果在应用上下文中找到一个单独的 Job bean,则会在启动时执行该 Job(详见 JobLauncherApplicationRunner)。如果找到多个 Job bean,则必须通过 spring.batch.job.name 指定要执行的 Job。
你可以禁用运行在应用上下文中找到的 Job,如下例所示:
- Properties
- YAML
spring.batch.job.enabled=false
spring:
batch:
job:
enabled: false