网站首页 > 开源技术 正文
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。
1,选择Spring Templete Project
2,选择Simple Spring Batch Project
3,输入项目名称,包名信息
4,可以看到生成的代码
一个简单的spring batch项目就有了,可以运行下ExampleJobConfigurationTests,run as JUnit,可以简单了解下整个过程
里面有个module-context.xml,就是job的配置文件。Job里面的step可以定义下一步等内容,打开文件可以图形化查看job流程。
<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>
猜你喜欢
- 2024-10-24 Java常用框架大全(java使用的框架)
- 2024-10-24 使用IntelliJ IDEA创建Spring Boot项目
- 2024-10-24 HikariCP为啥这么火?SpringBoot选它的原因?
- 2024-10-24 安装完STS插件后,如何用eclipse搭建springboot详解
- 2024-10-24 SpringBoot系列基础入门与MongoDB实现增删改查
- 2024-10-24 采用Springboot+ Layui开发的前后端分离物流后端项目源码分享
- 2024-10-24 springboot简介(介绍一下springboot)
- 2024-10-24 对Java开发人员的最有用的10个Eclipse插件
- 2024-10-24 Java知识体系最强总结(2021年最新版)
- 2024-10-24 如何将SpringBoot工程一键部署为容器化服务
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)