![[Java Framework] [Spring] SpringBoot整合SpringBatch](http://pic.xiahunao.cn/yaotu/[Java Framework] [Spring] SpringBoot整合SpringBatch)
spring batch 是一个 方便使用的 较健全的 批处理 框架。为什么说是方便使用的因为这是 基于spring的一个框架接入简单、易理解、流程分明。为什么说是较健全的 因为它提供了往常我们在对大批量数据进行处理时需要考虑到的 日志跟踪、事务粒度调配、可控执行、失败机制、重试机制、数据读写等。方法 / 步骤架构流程图简洁版本项目启动会生成 以BATCH 开头的几张表作为JobRepository以记录Job的执行记录和状态,可以说 JobRepository是SpringBatch的状态器JobRepository支持主流的数据库DB2、Derby、H2、HSQLDB、MySQL、Oracle、PostgreSQL、SQLServer、Sybase 等等生成表有下面这些BATCH_JOB_INSTANCEBATCH_JOB_EXECUTION_PARAMSBATCH_JOB_EXECUTIONBATCH_STEP_EXECUTIONBATCH_JOB_EXECUTION_CONTEXTBATCH_STEP_EXECUTION_CONTEXTSpring Batch框架的框架主要有以下功能Transaction management(事务管理)Chunk based processing(基于块的处理)Declarative I/O(声明式的输入输出)Start/Stop/Restart(启动/停止/再启动)Retry/Skip(重试/跳过)Hello world添加依赖!-- SpringBatch 相关依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-batch/artifactId/dependency!-- 数据库相关依赖 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.21/versionscoperuntime/scope/dependency配置属性spring:datasource:type:org.springframework.jdbc.datasource.DriverManagerDataSourceurl:jdbc:mysql://192.168.1.1:30117/xxxx_testusername:rootpassword:root# batchbatch:job:# 默认自动执行定义的Job(true)改为false需要jobLaucher.run执行enabled:true# spring batch在数据库里面创建默认的数据表如果不是always则会提示相关表不存在initialize-schema:always测试类/** * Description: * * author: YangGC */EnableBatchProcessingConfigurationpublicclassMemberJob{/** * 创建任务对象 */ResourceprivateJobBuilderFactoryjobBuilderFactory;/** * 执行任务对象 */ResourceprivateStepBuilderFactorystepBuilderFactory;/** * 创建任务 * * return */BeanpublicJobimportMemberJob(){returnjobBuilderFactory.get(importMemberJob)//执行step.start(importMemberJobStep()).build();}BeanpublicStepimportMemberJobStep(){returnstepBuilderFactory.get(importMemberJobStep).tasklet(newTasklet(){OverridepublicRepeatStatusexecute(StepContributionstepContribution,ChunkContextchunkContext){System.out.println(SpringBatch Hello World);// 返回的状态returnRepeatStatus.FINISHED;}}).build();}}正常打印SpringBatch Hello World即为引用成功参考资料 致谢[1] batch执行流程 spring_Spring Batch 批处理框架介绍[2] Spring Boot整合Spring Batch