SpringBatch接口BatchConfigurer详解
前言:BatchConfigurer作为策略接口提供了自定义SpringBatch基础设施组件能力。在使用@EnableBatchProcessing注解后,即可获取每个SpringBatch基础设施组件实例。
BatchConfigurer接口
当程序使用了@EnableBatchProcessing注解时,SpringBatch会执行以下流程。首先通过BatchConfigurer接口的实现来创建这些bean,然后通过SimpleBatchConfigurationt将它们添加到Spring ApplicationContext中。
BatchConfigurer接口方法
BatchConfigurer提供了四个方法,每个方法都是为SpringBatch基础设施提供了一个主要组件。
- JobRepository操作SpringBatch元数据库增删改查
- JobLauncher启动SpringBatch作业入口
- PlatformTransactionManager 为SpringBatch提供所有的事务管理
- JobExplorer提供了针对作业存储库中所保存数据的只读视图
public interface BatchConfigurer {JobRepository getJobRepository() throws Exception;PlatformTransactionManager getTransactionManager() throws Exception;JobLauncher getJobLauncher() throws Exception;JobExplorer getJobExplorer() throws Exception;
}
自定义BatchConfigurer
如果默认的DefaultBatchConfigurer不满足业务现状需要我们自定义BatchConfigurer。其实我们自定义的BatchConfigurer主要是要从写DefaultBatchConfigurer类里面方法实现。
/*** @author: slzhao* @date 2021/11/1122:17*/
public class CustomBatchConfigurer extends DefaultBatchConfigurer {@Resource(name = "respDataSource")private DataSource dataSource;@Autowiredprivate PlatformTransactionManager platformTransactionManager;@Overridepublic PlatformTransactionManager getTransactionManager() {return platformTransactionManager;}@Overrideprotected JobExplorer createJobExplorer() throws Exception {JobExplorerFactoryBean jobExplorerFactoryBean = new JobExplorerFactoryBean();jobExplorerFactoryBean.setDataSource(this.dataSource);jobExplorerFactoryBean.setTablePrefix("ZSL_");jobExplorerFactoryBean.afterPropertiesSet();return jobExplorerFactoryBean.getObject();}@Overrideprotected JobLauncher createJobLauncher() throws Exception {return super.createJobLauncher();}@Overrideprotected JobRepository createJobRepository() throws Exception {JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();factory.setDataSource(this.dataSource);factory.setTablePrefix("ZSL_");factory.setTransactionManager(platformTransactionManager);factory.afterPropertiesSet();return factory.getObject();}
}
注意:由于JobRepository和JobExplorer使用相同的底层数据存储,因此同时配置它们确保一直。
SpringBatch接口BatchConfigurer详解相关推荐
- 微信JS-SDK之图像接口开发详解
2019独角兽企业重金招聘Python工程师标准>>> 参考: 微信JS-SDK之图像接口开发详解 http://www.cnblogs.com/it-cen/p/4587812.h ...
- 2接口详解_TS入门笔记2——TS接口进阶详解
TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...
- Java语言Socket接口用法详解
Socket接口用法详解 在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...
- 转 LCD的接口类型详解
LCD的接口类型详解 LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式, ...
- java 接口函数_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- ILI9341的使用之【四】RGB接口操作详解
<ILI9341的使用之[一]TFT-LCD原理(转载)> <ILI9341的使用之[二]ILI9341介绍> <ILI9341的使用之[三]ILI9341系统通信接口模 ...
- java supplier接口_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- TP-LINK路由器作为副路由器之Lan接口连接详解
TP-LINK路由器作为副路由器之Lan接口连接详解 WiFi连接设置TP-LINK路由器作为局域网中的中继副路由器之Lan接口连接的方法,详解. 1.断开电脑的有线连接和WiFi连接的互联网. 1 ...
- AXI接口协议详解-AXI总线、接口、协议
转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...
最新文章
- tensorflow LSTM + CTC实现端到端OCR
- python 实时日志监控_python动态监控日志内容的示例
- 在python中,小数点前的0可以省略不写...
- Python工程师面试题集合
- Leaflet中使用layerGroup图层组实现图层切换
- linux+内核中开启nfs,NFS Client in Linux Kernel - Open
- cpp判断输入为数字_猜数字小程序带你C语言入门
- Redis 重写原理
- 中移4G模块-ML302-OpenCpu开发-MCP23017输入/输出
- iPhone 12无线充电模块曝光:AirPower有戏了!
- 基于JAVA+Servlet+JSP+MYSQL的停车管理系统
- Flutter进阶—解析动画
- 设置git客户端不经过代理
- 机器学习第五回——支持向量机SVM
- webservice解析xml文件
- 爆款升级当贝NEW D3X来了,画质亮度远超坚果O1S,性能小钢炮实至名归
- Mac安装软件提示“已损坏,无法打开”的解决办法
- php 正则匹配中文
- java根据某天获取当前周的日期
- Android studio 高德地图开发
热门文章
- python用sqlite数据库,python 中使用sqlite数据库
- linux关于文件夹的知识,Ubuntu 7.10 系统文件夹相关知识
- c++17进阶(2)-Lua扩展(1)
- 工业用微型计算机笔记(4)~编码,寄存器,引脚
- 趣学python3(47)--尾递归
- 适合小白的卷积神经网络图解
- 【深度学习】深度学习手写代码汇总(建议收藏,面试用)
- 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度...
- AI基础:特征工程-数字特征处理
- 斯坦福CS229机器学习课程的数学基础(概率论)翻译完成