写在最前
1、为方便开发,本程序所用框架为springboot+mybatis,同时mybatis还集成了 generator 插件;如果对这些开发环境不熟悉,建议先查询相关资料,搭建springboot+mybatis环境,再集成spring batch。
2、在配置job、step等spring batch 的bean时,用的是java config方式,如想用xml方式配置,可参考 之前的博客:https://blog.csdn.net/Chris___/article/details/103166094
3、源代码github: https://github.com/Horven-Jane/springBatchDemo1,可用于快速验证。
------------------------------------------------------------------------------------------------------------------------------------------------
Job Repository 用来存储Job执行期的元数据,这里的元数据是指Job Instance、Job Execution、Job Parameters、StepExecution、Execution Context等数据。
有关元数据的介绍,这里暂不做详细介绍,读者暂时可以将它们理解为spring batch运行时产生的一些中间数据。
有两种Job Repository 的实现方式,一种是存放在内存中,这在之前的博客中介绍了(https://blog.csdn.net/Chris___/article/details/103166094);另一种则是将元数据存放在数据库中。
本篇文章介绍第二种方式——DB Job Repository。
将元数据存放在数据库的好处:可以随时监控批处理Job的执行状态,查看Job执行结果是成功还是失败,并且使得在job失败的情况下重启Job成为可能。
以下是详细步骤。
一、初始化数据库
初始化数据库,是指要建立相应的数据库表,以便存放元数据。spring batch已经提供了相应的建表、销表语句。
在包spring-batch-core jar包下的 org.springframework.batch.core 目录中,可以找到相应的sql文件,如下:
本示例所用的数据库是Mysql,因此执行 schema-mysql.sql 中的语句,即可完成初始化。
如果想销表,则执行 schema-drop-mysql.sql。
初始化数据库后,可以看到有9张元数据表:
表对应的描述如下:
二、搭建springboot+mybatis 环境
本项目采用springboot+mybatsi作为框架,并用了mybatis的generator功能。
项目的业务场景是:从文件中读取