随笔分类 - SpringBatch
SpringBatch是一个完全融合Spring的轻量级批处理框架!
摘要:继续前面关于Spring Batch系列的文章,本文主要介绍与JobParameters相关的一些知识。一、JobParameters 顾名思义,所谓JobParameters,就是Job运行时的参数。它在bath中有两个作用:一是标示不同的jobInstance,二是作为job中用到的信息,以参数的形式传给job。 如何使用JobParameters呢?它主要是在启动的job的时候,与job联系起来的。看一下框架提供的启动job的接口JobLauncher的源代码,就会发现其run方法需要两个参数,一个是Job,也就是需要启动的job,另一个就是JobParameters。可以通过如下方式.
阅读全文
摘要:前面的文章跟大家一起讨论了Spring Batch的概念,处理流程,以及SpringBatch处理文件、DB的一些简单实例。接下来的讨论,主要是关于Spring Batch的一些高级应用处理和实际开发中需要注意的一些问题。 今天主要和大家讨论SpringBatch关于skip容错机制的一些处理。 一、skip的介绍 在实际的项目开发中,我们常常要将几十万甚至上百万的数据从文件导入到DB中,如果其中某条数据导入时发生例外,我们并不想整个Job以失败而结束,而是希望能将错误的数据经过处理后保存起来,其余正确的数据继续做导入处理。如果遇到这样的场景,SpringBatch的skip机制就可以派上用.
阅读全文
摘要:前面关于Spring Batch的文章,讲述了SpringBatch对Flat、XML等文件的读写操作,本文将和大家一起讨论Spring Batch对DB的读写操作。Spring Batch对DB数据的读取操作提供两种形式,一种是以游标为基础,一条条的读取数据;另外一种是分页的方式读取DB。 通过前面文章的讲解,大家应该对SpringBatch的框架和基本配置有了一定的了解。为了不显得啰嗦,本文只提供读取DB方式的核心配置,一些辅助信息的配置,如果不明白,可以参照前面几讲的内容。 首先是读操作: 1 <bean:bean id="jdbcItemReader" 2 c
阅读全文
摘要:最近一个项目在使用SpringBatch框架做一个电子商务平台的批处理。网上资料很有限,尤其是中文资料更是少之又少,官网上的文档也只是讲一些入门的基础知识,大部分高级特性都是一笔带过,讲解的很不彻底,在实际开发中碰到的问题很多。因此,特将自己学习、应用Spring Batch的过程总结成一个个小实例
阅读全文
摘要:前面关于Spring Batch的文章,讲述了SpringBatch对CSV文件的读写操作、对XML文件的操作,以及对固定长格式文件的操作。这些事例,同一个Reader读取的都是相同格式的数据,最终写入一个文件。如果遇到下面这样的数据,并想将学生信息和商品信息分类后写入两个文件,应该如何处理呢?student,200001,ZhangSan,18,78goodsPNH001011000200.1zhangshana2011/12/18 01:12:36student,200002,LiSi,19,79goodsPNH001022000300.1zhangshanb2011/12/19 01:.
阅读全文
摘要:前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作。本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作。实例延续前面的例子,读取一个含有四个字段的TXT文件(ID,Name,Age,Score),对读取的字段做简单的处理,然后输出到另外一个TXT文件中。 工程结构如下图: applicationContext.xml和log4j.xml前文已经叙述过,在此不做赘述。 本文核心配置文件batch.xml内容如下: 1 <?xml version="1.0" encoding=&quo
阅读全文
摘要:前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作。本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作。实例流程是从一个XML文件中读取商品信息,经过简单的处理,写入另外一个XML文件中。 工程结构如下图: log4j.xml是log处理的配置文件,与本文没有必然联系,再此不做论述。application.xml文件内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="ht
阅读全文
摘要:本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对CSV文件的读写操作。此实例的流程是:读取一个含有四个字段的CSV文件(ID,Name,Age,Score),对读取的字段做简单的处理,然后输出到另外一个CSV文件中。 工程结构如下图: JobLaunch类用来启动Job, CsvItemProcessor类用来对Reader取得的数据进行处理, Student类是一个POJO类,用来存放映射的数据。 inputFile.csv是数据读取文件, outputFile.csv是数据输出文件。 application.xml文件配置如前篇文章,不再赘述。 batch.xml..
阅读全文
摘要:通过前面两篇关于Spring Batch文章的介绍,大家应该已经对Spring Batch有个初步的概念了。这篇文章,将通过一个”Hello World!”实例,和大家一起探讨关于Spring Batch的一些基本配置和实现。使大家从开发的角度对Spring Batch有一个真切的体会。 说明:1,本实例使用的是spring-batch 2.1.82,本实例没有像前面讲的那样配置ItemReader、ItemProcessor和ItemWriter,而是之间在Step中调用Tasklet,由Tasklet完成”Hello World!”的输出。 工程结构如下图: JobLaunch.java.
阅读全文
摘要:Spring Batch流程介绍:上图描绘了Spring Batch的执行过程。说明如下: 每个Batch都会包含一个Job。Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,ItemWriter用来写数据) 。JobLauncher用来启动Job,JobRepository是上述处理提供的一种持久化机制,它为JobLauncher,Job,和Step实例提供CRUD操作。 外部控制器调用JobLauncher
阅读全文
摘要:Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案:1、批处理定期提交。2、并行批处理:并行处理工作。3、企业消息驱动处理4、大规模的并行处理5、手动或是有计划的重启6、局部处理:跳过记录(如:回滚)技术目标:1、利用Spring编程模型:使程序员专注于业务处理,让Spri.
阅读全文