Spring batch 的writer有本身自己的事务:
比如读取txt文件到第几行了,写到第几行了,step做到哪里了?读了几行需要提交了?这些信息都会写入到数据库中去。
而我们自己的writer也会写数据到数据库中去,这里就有一个transaction同步的问题。
SPRING 的基础设施就很好的解决了这个问题。
看如下代码:
/**
* @see ItemWriter#write(Object)
*/
public void write(List<? extends Object> data) throws Exception {
TestBean rs=null;
for(Object line : data){
rs=(TestBean)line;
}
final Object[] params=new Object[2];
params[0]=rs.getName();
params[1]=rs.getAge();
System.out.println(ToStringBuilder.reflectionToString(rs));
TransactionTemplate transactionTemplate = new TransactionTemplate(new DataSourceTransactionManager(dataSource));
transactionTemplate.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus arg0) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update("insert into BATCH_TEST(NAME,AGE) VALUES(?,?)",params);
return null;
}
});
}
Spring的transaction的关于jdbc数据源的处理基本有下面两部分组成:
transactionTemplate: 用于组织事务。
DataSourceTransactionManager:用于同步框架中的事务,其实利用的是localthread
dataSource 是管理connection的。
jdbcTemplate 用来执行相应的sql。
分享到:
相关推荐
Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...
在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...
### Spring Batch 2.1.8 版本详解 #### 一、Spring Batch 简介 ##### 1.1 背景介绍 Spring Batch 是一个强大的批量处理框架,旨在简化开发大型批量数据处理应用的过程。该框架提供了一种灵活且可扩展的方式来构建...
Spring Batch 提供了丰富的功能,以满足大规模数据处理的需求,比如作业跟踪、日志记录、事务管理、工作重启动、跳过错误记录以及资源管理等。 业务方案方面,Spring Batch 可以用于多种场景: 1. **批处理定期...
总结而言,SpringBatch是构建在Spring框架之上,用于大数据量并行处理的批处理框架。其主要关注点在于批处理任务执行的各个方面,比如事务管理、并发处理、执行流程以及监控。通过SpringBatch,开发者可以构建轻量级...
1. **AOP(面向切面编程)**:Spring的重要特性之一是其强大的AOP支持,它允许开发者在不修改原有代码的情况下,对程序进行横切关注点的管理,如日志、事务管理等。在第十章中,你将学习如何定义和配置切面,以及...
首先,Spring Batch 提供了事务管理、错误处理、日志记录等关键功能,使得开发者可以专注于业务逻辑,而不必过于关注基础设施层面的细节。它的核心组件包括: 1. **Job**: 代表一个完整的批量处理任务,由一系列...
技术目标方面,Spring_Batch旨在简化批处理作业的开发和部署过程,利用Spring编程模型让开发者专注于业务逻辑处理,同时管理作业的执行流程。它通过提供核心的、通用的接口以及开箱即用的核心执行接口,简化了作业的...
Spring Batch 使用 XML 或 Java 配置,提供了灵活的声明式编程模型。在2.2.0.RELEASE版本中,开发者可以创建 Job 和 Step 的定义,定义 Reader、Processor 和 Writer 实例,并设置相应的属性。此外,Spring Batch 还...
Spring Batch 是一个构建在 Spring 框架之上的批量处理框架,专为处理大量数据而设计。该框架提供了丰富的功能来支持批量数据处理,如日志记录、事务管理、作业监控与重启能力、数据读取与写入等。Spring Batch 的...
此外,Spring Boot的自动配置特性可以帮助我们轻松设置数据库连接、事务管理等。 在描述中提到的"opengl"可能是指项目中包含了使用OpenGL进行图形渲染的部分。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、...
Spring Batch 是一个强大的Java框架,专门用于执行批量处理任务,尤其在大数据量的场景下表现卓越。本课程将深入探讨Spring Batch的核心概念和实践应用,帮助开发者熟练掌握如何利用该框架进行高效的数据处理。 ...
总之,`Spring JdbcTemplate.batchUpdate`是处理批量数据库操作的强大工具,它可以提高效率,减少与数据库的交互次数。然而,正确地使用它需要对事务管理、异常处理和性能优化有深入的理解。通过合理的配置和良好的...
6. **事务的异步处理**:Spring Integration和Spring Batch等模块提供了异步事务处理的支持。通过TaskExecutor,可以在后台线程中执行事务,提高系统的并发能力。 7. **分布式事务**:在分布式系统中,Spring支持...
8. **Spring Batch**:用于处理批量处理任务的框架,提供了强大的批处理功能,如事务管理、错误处理和重试机制。 9. **Spring Integration**:提供了一种轻量级的集成框架,支持消息驱动的架构,能够与其他系统进行...
- **定义**:一种编程范式,用于将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来。 - **关键概念**: - **切面**:封装了横切关注点的模块。 - **连接点**:程序执行过程中的某个特定点,如方法调用...
Spring框架的核心特性包括依赖注入、面向切面编程、AOP代理、事务管理以及一系列用于简化Web开发的组件。在本文中,我们将探讨Spring框架源码的下载以及学习源码的重要性。 首先,下载Spring框架源码是深入理解其...
- **面向切面编程**:Spring提供了AOP支持,用于处理系统中的横切关注点,如日志、事务管理等,使得业务逻辑与这些关注点解耦。 - **通知类型**:包括前置通知、后置通知、异常通知、环绕通知和最终通知,它们在切...
在事务管理方面,Spring提供了编程式和声明式两种事务管理方式,书中有详细的解释和示例,帮助读者理解何时及如何选择合适的方式。 安全是任何应用都需要考虑的问题,Spring Security提供了一套全面的安全解决方案...