前言: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详解相关推荐

  1. 微信JS-SDK之图像接口开发详解

    2019独角兽企业重金招聘Python工程师标准>>> 参考: 微信JS-SDK之图像接口开发详解 http://www.cnblogs.com/it-cen/p/4587812.h ...

  2. 2接口详解_TS入门笔记2——TS接口进阶详解

    TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...

  3. Java语言Socket接口用法详解

    Socket接口用法详解   在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...

  4. 转 LCD的接口类型详解

    LCD的接口类型详解 LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式, ...

  5. java 接口函数_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  6. ILI9341的使用之【四】RGB接口操作详解

    <ILI9341的使用之[一]TFT-LCD原理(转载)> <ILI9341的使用之[二]ILI9341介绍> <ILI9341的使用之[三]ILI9341系统通信接口模 ...

  7. java supplier接口_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  8. TP-LINK路由器作为副路由器之Lan接口连接详解

    TP-LINK路由器作为副路由器之Lan接口连接详解 WiFi连接设置TP-LINK路由器作为局域网中的中继副路由器之Lan接口连接的方法,详解. 1.断开电脑的有线连接和WiFi连接的互联网. 1 ...

  9. AXI接口协议详解-AXI总线、接口、协议

    转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...

最新文章

  1. tensorflow LSTM + CTC实现端到端OCR
  2. python 实时日志监控_python动态监控日志内容的示例
  3. 在python中,小数点前的0可以省略不写...
  4. Python工程师面试题集合
  5. Leaflet中使用layerGroup图层组实现图层切换
  6. linux+内核中开启nfs,NFS Client in Linux Kernel - Open
  7. cpp判断输入为数字_猜数字小程序带你C语言入门
  8. Redis 重写原理
  9. 中移4G模块-ML302-OpenCpu开发-MCP23017输入/输出
  10. iPhone 12无线充电模块曝光:AirPower有戏了!
  11. 基于JAVA+Servlet+JSP+MYSQL的停车管理系统
  12. Flutter进阶—解析动画
  13. 设置git客户端不经过代理
  14. 机器学习第五回——支持向量机SVM
  15. webservice解析xml文件
  16. 爆款升级当贝NEW D3X来了,画质亮度远超坚果O1S,性能小钢炮实至名归
  17. Mac安装软件提示“已损坏,无法打开”的解决办法
  18. php 正则匹配中文
  19. java根据某天获取当前周的日期
  20. Android studio 高德地图开发

热门文章

  1. python用sqlite数据库,python 中使用sqlite数据库
  2. linux关于文件夹的知识,Ubuntu 7.10 系统文件夹相关知识
  3. c++17进阶(2)-Lua扩展(1)
  4. 工业用微型计算机笔记(4)~编码,寄存器,引脚
  5. 趣学python3(47)--尾递归
  6. 适合小白的卷积神经网络图解
  7. 【深度学习】深度学习手写代码汇总(建议收藏,面试用)
  8. 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度...
  9. AI基础:特征工程-数字特征处理
  10. 斯坦福CS229机器学习课程的数学基础(概率论)翻译完成