加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据处理---Spring Batch之基础

发布时间:2021-02-26 17:48:08 所属栏目:大数据 来源:网络整理
导读:? ? ? Spring框架提供了强大的底层结构,基于此,Spring出现了很多方面的应用。Spring Batch就是其一,它是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容

? ? ? Spring框架提供了强大的底层结构,基于此,Spring出现了很多方面的应用。Spring Batch就是其一,它是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。需要说明的是,spring batch并不提供定时之类的功能,那是quartz等做的事情

? ? ?使用spring Batch,可以使程序员专注于业务处理,让Spring框架管理流程。
? ? ?明确分离批处理的执行环境和应用。
? ? ?提供核心的,共通的接口。
? ? ?提供开箱即用(out of the box)的简单的默认的核心执行接口。
? ? ?提供Spring框架中配置、自定义、和扩展服务。
? ? ?所有存在的核心服务可以很容的被替换和扩展,不影响基础层。

? ? ?Spring Batch里面有几个基本的概念需要明白,有了这些基础才好开始动手让job跑起来。

  • ? ? ?Job就是要做的事情,很简单,通过JobLauncher.run(job,new JobParameters());来运行JOB帮助我们跑批,当然可以添加JobParameters。每个Job真正跑起来就是JobInstance
  • ? ? ?一个Job由好几个步骤构成,就是Step。比如第一步做什么,第二步做什么。每个步骤里面有很多小任务,没错就是Tasklet
  • ? ? ?每个步骤一般包括ItemReader,ItemProcessor,ItemWriter,这几个很好理解。Job不就是做读数据,处理数据,写数据的吗?
  • ? ? ?所有的这些步骤都可以持久化,方便对整个执行情况进行跟踪,谁来做持久化呢,就是JobRepository。

数据处理---Spring Batch之基础




下面利用STS(spring tool suite)快速创建一个简单的spring batch project.

1,选择Spring Templete Project

数据处理---Spring Batch之基础


2,选择Simple Spring Batch Project

数据处理---Spring Batch之基础


3,输入项目名称,包名信息

数据处理---Spring Batch之基础


4,可以看到生成的代码

数据处理---Spring Batch之基础




一个简单的spring batch项目就有了,可以运行下ExampleJobConfigurationTests,run as JUnit,可以简单了解下整个过程

里面有个module-context.xml,就是job的配置文件。Job里面的step可以定义下一步等内容,打开文件可以图形化查看job流程。

数据处理---Spring Batch之基础


<batch:job id="job1"> <batch:step id="step1" next="step2" > <batch:tasklet transaction-manager="transactionManager" start-limit="100" > <batch:chunk reader="reader" writer="writer" commit-interval="1" /> </batch:tasklet> </batch:step> <batch:step id="step2" > <batch:tasklet transaction-manager="transactionManager" start-limit="100" > <batch:chunk reader="reader" writer="writer" commit-interval="1" /> </batch:tasklet> </batch:step> </batch:job>?

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读