分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/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