Spring Boot 集成 批处理框架Spring batch

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

Spring Batch是一个轻量级的框架,完全面向Spring的批处理框架,用于企业级大量的数据读写处理系统。以POJO和Spring 框架为基础,包括日志记录/跟踪,事务管理、 作业处理统计工作重新启动、跳过、资源管理等功能。

       业务方案:

1、批处理定期提交。

2、并行批处理:并行处理工作。

3、企业消息驱动处理

4、大规模的并行处理

5、手动或是有计划的重启

6、局部处理:跳过记录(如:回滚)

      技术目标:

1、利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。

2、明确分离批处理的执行环境和应用。

3、提供核心的,共通的接口。

4、提供开箱即用(out of the box)的简单的默认的核心执行接口。

5、提供Spring框架中配置、自定义、和扩展服务。

6、所有存在的核心服务可以很容的被替换和扩展,不影响基础层。

7、提供一个简单的部署模式,利用Maven构建独立的Jar文件。

实现步骤:

1.定义处理对象

2.创建中间转换器 ***ItemProcessor 实现 ItemProcessor<I,O>接口

3.创建工作Job BatchConfiguration 主要处理读数据、处理数据、写数据等操作

4.创建listener job执行监听器

 

 

一般的批处理系统需要处理大量的数据, 内部消化单条记录失败的情况, 还要管理中断,在重启后也不去重复执行已经处理过的部分

 

 Spring Batch单/多处理单元(processors), 以及多个微线程(tasklets)

具体实现过程:

1.引入jar:

<!-- Spring-boot启动项目 --> <parent>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>1.3.1.RELEASE</version> </parent> <properties>  <java.version>1.8</java.version> </properties>    <!--Spring batch核心包-> <dependencies>  <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-batch</artifactId>  </dependency>  <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>  </dependency>  </dependencies>

2.配置application.properties :配置数据源

######mysql\u6570\u636E\u6E90#########spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.password= wbw123456spring.datasource.url= jdbc:mysql://localhost/mydatabasespring.datasource.username=root<a target=_blank href="http://projects.spring.io/spring-batch/">点击打开链接</a>


3.新建实体类
package com.my.gs.batch.processing.domain;public class Person //ID    private Integer personId;    //姓名    private String personName;    //年龄    private String personAge;    //性别    private String personSex;        public Person(){}; public Person( String personName, String personAge,   String personSex) {  this.personName = personName;  this.personAge = personAge;  this.personSex = personSex; } public Integer getPersonId() {  return personId; } public void setPersonId(Integer personId) {  this.personId = personId; } public String getPersonName() {  return personName; } public void setPersonName(String personName) {  this.personName = personName; } public String getPersonAge() {  return personAge; } public void setPersonAge(String personAge) {  this.personAge = personAge; } public String getPersonSex() {  return personSex; } public void setPersonSex(String personSex) {  this.personSex = personSex; }        }

4.中间转换器:

package com.my.gs.batch.processing.itemprocessor;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.batch.item.ItemProcessor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.spri
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值