当前位置:首页 > 教育

springbatch SpringBatch从入门到放弃001

从开始到放弃001-地狱世界的跳跃

经常有人问我有没有Spring Batch的例子可以参考。我之前的回答是百度一般自己找,太多了。但是后来我发现因为Spring Batch的版本太稳定,网上的例子大多是基于2.x和3.x版本的,对应的Spring Boot版本也比较老。针对这种情况,我决定根据最新发布的官方文件,写一套最新的例子,供朋友参考。

弹簧靴集成了弹簧批。如果想在程序时钟中启用Spring Batch,只需要添加@EnableBatchProcessing注释即可。Spring Boot会根据内置的@ BatchAutoConfiguration引入必要的配置。

春靴公文中的春批描述

让我们基于Spring Boot构建一个Hello World Spring批处理。让我想象一个简单的需求:读取某个目录中的一个文件,对其进行处理,然后编写另一个文件。

步骤1:创建一个新的Spring Boot项目

我们通过IDEA创建了一个新的Spring Boot项目,并在新的构建过程中引入了两个必要的依赖项:

回弹:运行回弹

MySQL驱动程序:需要通过Spring Batch和数据库存储Job的运行数据

创建一个新的春季开机项目

打开POM,我们会找到实际引入批处理的启动器。批核封装在启动器中。

org.springframework.boot

弹簧靴启动器批次

关系型数据库

MySQL-连接器-java

运行时间

由于引入了MySQL依赖,配置一个数据源,打开application.properties文件,添加数据源配置,spring.datasource.username=XXX

spring.datasource.password=XXX

spring . data source . driver-class-name = com . MySQL . CJ . JDBC . driver

spring . data source . URL = JDBC:MySQL://localhost:3306/batch _ config?零日期时间行为=转换全

我们需要在程序运行时初始化数据库,然后在程序启动时向application . properties # Initialize a空数据结构添加以下两个参数

spring . batch . initialize-schema = embed

#程序启动时不要运行任何作业

spring.batch.job.enabled=false

步骤2:定义读取器/处理器/写入器

根据我们想象的需求,我们需要设置一个阅读器来读取我们的文件。Spring Batch内置了很多有用的阅读器,后面章节我会详细介绍。这里我们选择FlatFileItemReader来读取文件。Spring Batch提供了FlatFileItemReaderBuilder来帮助我们构建FlatFileItemReader。我们只需要指定几个简单的属性就可以完成一个读取文件的阅读器。代码如下:@StepScope

@豆

公共项目阅读器项目阅读器{

//FlatFileItemReader

返回新的FlatFileItemReaderBuilder

。名字

。资源)

。线路映射器)

。构建;

}

读取文件后,我们在每一行添加一个字符串来模拟批处理的处理。我们通过实现匿名来完成添加字符串的操作:@StepScope

@豆

公共项目处理器项目处理器{

返回新的项目处理器{

@覆盖

公共字符串进程引发异常{

return " "+item;

}

};

}

在处理完读取的内容后,我们需要将读取的字符串写入数据库或文件系统,我们假设的需求是写文件。同一个Spring Batch官方提供了很多内置Writer。因为我们正在写文件,所以我们选择FlatFileItemWriter作为我们的编写器。同样,我们使用FlatFileItemWriterBuilder来构建我们的FlatFileItemWriter。@StepScope

@豆

公共项目编写器项目编写器{

返回新的FlatFileItemWriterBuilder

。名字

。线性聚合器)

。资源)

。构建;

}

至此,我们的读写器/处理器/写入器已经建成,相当于正在准备的零件。接下来,我们通过构建步骤/作业来组装批处理。

步骤3:构建步骤/作业

将@EnableBatchProcessing添加到项目后,默认情况下,批处理所需的对象将被注入到上下文中,包括用于构建步骤的Stepbuilderfactory和用于构建作业的Jobbuilderfactory。接下来,我们将使用这两个工厂来构建我们的步骤和作业。

先注入这两个工厂:@ autowired

jobbuilder factory jobbuilder factory;

@自动连线

stepbuilder factory stepbuilder factory;

将步骤2中的部件组装成一个步骤:@Bean

公共步骤步骤1{

返回stepBuilderFactory.get

。厚块

。读者)

。处理器)

。作家)

。构建;

}

将步骤放入作业:@Bean

公共职务1{

返回jobBuilderFactory.get.start)。构建;

}

经过以上两步,我们的工作就确定了。让我们测试一下我们写的作业是否正确:

第四步:测试工作

Springback4.x提供了一个@ SpringBatchTest,它将帮助我们构建一个批处理执行环境,比如两个类:joblaunchertestutils/jobrespitorytestutils。@RunWith

@回弹测试

@回弹测试

公共类JobTest {

@自动连线

私有JobLauncherTestUtils JobLauncherTestUtils;

@自动连线

私有JobRepresetorytestutils JobRepresetorytestutils;

… … … …

}

在测试我们的Job之前,我们需要清除空我们的测试库,这样上次失败引入的脏数据就不会影响我们这次的测试。@之前

public void clearMetadata {

jobresetorytestutils . removejobexecutions;

}

写一个简单的测试用例,运行我们的JOB,判断顺序是否正常结束:@Test

公共无效测试作业引发异常{

//给定

作业参数作业参数=

joblaunchertestutils . getuniquejobparameters;

//什么时候

作业执行作业执行=

joblaunchertestutils . launchejob;

//然后

assert . assertequals);

}

好了,从第一次开始,我们Hello World的代码都写好了。项目总体结构如下:

项目结构

运行我们的Junit Case,操作成功后,我们会在Writer指定的文件目录下生成处理过的文件。

运行效果

同时,在我们配置的数据库中,批处理框架所需的表将被初始化:

由数据库创建的表

彭舸上传了源代码:https://dev。腾讯. com/u/令狐冲/p/spring-boot-batch/git/tree/master/chapter 1

1.《springbatch SpringBatch从入门到放弃001》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《springbatch SpringBatch从入门到放弃001》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1534260.html

上一篇

经典唐诗20首 唐诗七绝十大排行榜,首首堪称千古经典,值得一品

下一篇

里皮宣布教练生涯结束 登上网络热搜了!

房地产营销策划方案 房地产营销策划方案步骤

  • 房地产营销策划方案 房地产营销策划方案步骤
  • 房地产营销策划方案 房地产营销策划方案步骤
  • 房地产营销策划方案 房地产营销策划方案步骤

房地产营销策划案 房地产营销策划方案步骤

  • 房地产营销策划案 房地产营销策划方案步骤
  • 房地产营销策划案 房地产营销策划方案步骤
  • 房地产营销策划案 房地产营销策划方案步骤

房地产销售策划方案 房地产营销策划方案步骤

  • 房地产销售策划方案 房地产营销策划方案步骤
  • 房地产销售策划方案 房地产营销策划方案步骤
  • 房地产销售策划方案 房地产营销策划方案步骤

房地产营销策划书 房地产营销策划方案步骤

  • 房地产营销策划书 房地产营销策划方案步骤
  • 房地产营销策划书 房地产营销策划方案步骤
  • 房地产营销策划书 房地产营销策划方案步骤

地产策划案 房地产营销策划方案步骤

  • 地产策划案 房地产营销策划方案步骤
  • 地产策划案 房地产营销策划方案步骤
  • 地产策划案 房地产营销策划方案步骤

台钓调漂图解具体步骤 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略

  • 台钓调漂图解具体步骤 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略
  • 台钓调漂图解具体步骤 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略
  • 台钓调漂图解具体步骤 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略
空钩调漂法 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略

空钩调漂法 钓鱼调漂方法虽然不同,想要做到调漂准确,这些步骤不能忽略

漂移调整的方法可以不同,但都是追求精度。如果想实现精确的漂移调整,无论漂移调整的方法是什么,注意事项都是一样的。常见的调漂方法主要有空钩漂、饵漂、钩漂、分线漂四种。虽然方法不同,但都差不多,要点完全一样,也说明了漂移调...

人力资源管理助理 人力资源管理职能及作业细则—专科经营助理连载三

作者|赵军主编|医疗管理 本文是系列连载文章。接下来的几天,医疗管理将通过连载的形式,深入解读医院管理中心和专科管理助理对医院运营的影响 台湾省某医院将专科管理助理的职能分为六类:人力资源、业务分析、仪器设备管理、专科...