千家信息网

SpringBatch批处理框架怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍SpringBatch批处理框架怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用Spring Batch做为批处理框架,可以完成常规的数据量不是特别大的
千家信息网最后更新 2026年11月01日SpringBatch批处理框架怎么用

这篇文章主要介绍SpringBatch批处理框架怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

使用Spring Batch做为批处理框架,可以完成常规的数据量不是特别大的离线计算。

现在写一个简单的入门版示例。

这里默认大家已经掌握了Spring Batch的基本知识,示例只是为了快速上手实践

目标1:程序随机生成字符串,经过Spring Batch后,统一在字符串后加入"----PROCESSED",并输出

目标2:程序读取txt文件,经过Spring Batch后,统一加入如上字段,并输出

Spring Batch的流程

读取数据----itemReader 处理数据----itemProcess 数据写入----itemWrite

分析目标可知,两个目标的输入数据源不同,处理方式基本一致,数据完成后的写入规则一致

由此可以分段完成代码

itemReader

目标一

这里没有使用Spring Batch自带的集中reader,所以自定义了随机生成字符串的reader

这里代码并不完善,reader会无线循环生成随机字符串,但不影响本次学习的目的

public class MyItemReader implements ItemReader { @Override public String read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException { return RandomStringUtils.randomAlphabetic(10); }}

目标二

由于是读取文件中的内容,所以不用自定义reader实现,可直接使用FlatFileItemReader,在Batch的config中配置即可

@Bean public ItemReader textReader(){ FlatFileItemReader reader=new FlatFileItemReader<>(); File file = new File("D:\\FTP\\ttest.txt"); reader.setResource(new FileSystemResource(file)); reader.setLineMapper(new LineMapper() { @Override public String mapLine(String line, int lineNumber) throws Exception { return line; } }); return reader; }

itemProcess

这里采用同一种处理方式即可

public class MyItemProcessor implements ItemProcessor { @Override public String process(String s) throws Exception { return s+"---------PROCESSED"; }}

itemWriter

也采用同一种即可

public class MyItemWriter implements ItemWriter { @Override public void write(List items) throws Exception { for (String item : items) { System.out.println(item); } }}

配置完成Batch Config

@Configuration@EnableBatchProcessingpublic class BatchConfiguration extends DefaultBatchConfigurer { @Autowired public StepBuilderFactory stepBuilderFactory; @Autowired public JobBuilderFactory jobBuilderFactory; @Bean public MyItemProcessor processor(){ return new MyItemProcessor(); } @Bean public ItemWriter writer(){ return new MyItemWriter(); } @Bean public ItemReader textReader(){ FlatFileItemReader reader=new FlatFileItemReader<>(); File file = new File("D:\\FTP\\ttest.txt"); reader.setResource(new FileSystemResource(file)); reader.setLineMapper(new LineMapper() { @Override public String mapLine(String line, int lineNumber) throws Exception { return line; } }); return reader; } @Bean public ItemReader stringReader(){ return new MyItemReader(); } @Override public void setDataSource(DataSource dataSource) { super.setDataSource(dataSource); } @Bean public Step myStep(){ return stepBuilderFactory .get("step1") //这个chunk size是最后调用写入的时候,一次性写入多少条已处理的数据 .chunk(10)// .reader(textReader()) .reader(stringReader()) .processor(processor()) .writer(writer()) .build(); } @Bean public Job MyJob(){ return jobBuilderFactory .get("MyJOB") .listener(new JobExecutionListenerSupport(){ //所有处理结束后调用 @Override public void afterJob(JobExecution jobExecution) { if(jobExecution.getStatus() == BatchStatus.COMPLETED){ System.out.println("OK"); } } }) .flow(myStep()) .end() .build(); }}

以上是"SpringBatch批处理框架怎么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数据 目标 处理 字符 字符串 框架 内容 生成 一致 代码 文件 方式 知识 示例 程序 篇文章 统一 输出 配置 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 互联网科技作文 互联网科技公司官网 互联网科技缩写 北京禾田雨橡互联网科技 顺玮阁互联网科技 互联网科技公司需要的职位 昊天互联网科技有限公司 注册互联网科技公司经营范围大全 互联网媒体平台算高科技产业 互联网科技和信息 华夏恒生互联网科技013171 中国互联网公司排名锤子科技 翼展科技 首家互联网医院 中科明德北京互联网科技 上海万顺科技互联网有限公司招聘 张家口科技产业互联网平台 互联网科技和医药行业 上海互联网科技园景观 互联网科技创新方面的资料 金融科技与互联网金融 奇酷互联网科技公司 宜安科技 互联网金融 亿人帮互联网科技 互联网金融和金融科技 甘肃拓世互联网科技有限公司 青海省互联网新科技 新兴科技互联网创新大赛颁奖典礼 科技赋能视角下互联网保险发展 济南小医互联网科技有限公司招聘
0