4年来一直在ssi中用spring控制事物。这回把spring+ibatis摘出来吧,以供不时之需。
applicationContext.xml
<!--
spring事务管理 方法一-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<aop:config>
<aop:pointcut id="serviceOperation" expression="execution(*
com.*.service.*.*(..))" />
<aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" rollback-for="Exception" />
<tx:method name="save*" rollback-for="Exception" />
<tx:method name="update*" rollback-for="Exception" />
<tx:method name="delete*" rollback-for="Exception" />
<tx:method name="*" read-only="true" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
主要java代码:
public void insertAccounts(List<Account> accountList) {
for (int i = 0; i < accountList.size(); i++) {
System.out.println(""+i);
if(i==2){
//注释到就可以全部插入,否则spring的事物会让他们全部不插入,ACID
int s=2/0;//抛出异常
}
this.accountDao.insertAccount(accountList.get(i));
}
}
另外,附件也上传了一份jdbc的事物源代码,这个是复制自别人的的,可惜忘了地址,抱歉。
分享到:
相关推荐
标题中的“spring-控制事务”指的是Spring框架中的事务管理功能,这是Spring的核心特性之一,用于在多层架构中实现数据库事务的一致性和可靠性。在Java企业级应用开发中,事务管理是至关重要的,确保数据操作的原子...
在这个源码中,我们可以深入理解Spring如何处理事务的生命周期、回滚规则以及与各种数据源的集成。 首先,`spring-tx`模块主要包含以下几个关键组件: 1. **PlatformTransactionManager**: 这是Spring事务管理的...
首先,`@Transactional`是Spring提供的一个编程式事务管理方式,它允许我们在方法上声明事务属性,如传播行为、隔离级别、读写模式以及是否回滚。例如: ```java @Service public class UserService { @...
- **声明式事务管理**:基于AOP(面向切面编程),通过在方法或类上添加@Transactional注解来声明事务属性,由Spring容器在运行时自动处理事务开始、提交或回滚。 - **编程式事务管理**:在代码中显式调用...
Spring 异常捕获且回滚事务解决方案 在 Spring 框架中,异常捕获和回滚事务是非常重要的概念。今天,我们将讨论如何在 Spring 中捕获异常并回滚事务。 首先,让我们了解一下 Spring 的事务机制。当我们在 Spring ...
1. 声明式事务管理:通过在Service方法上添加@Transactional注解,Spring会自动进行事务的开启、提交、回滚。如果方法内部出现异常,Spring会自动回滚事务,保证数据的一致性。 2. 事务传播行为:@Transactional...
#### Spring事务控制的基础概念 Spring框架支持两种类型的事务管理:编程式事务管理和声明式事务管理。 - **编程式事务管理**:通过编码的方式来管理事务,适用于需要细粒度控制的情况。 - **声明式事务管理**:...
《Spring Boot多数据源(支持Spring声明式事务切换和回滚)》 Spring Boot多数据源技术是构建高效、灵活的多租户SaaS架构的关键。在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论...
1. Spring事物配置详解: 在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或编程式的方式来管理事务。声明式事务管理通过在XML配置文件或注解中定义事务边界,使得事务处理更加简洁。例如,可以使用...
这种场景就可以使用@Transactional事物回滚。 二、checked异常和unchecked异常 checked异常和unchecked异常是Java语言中异常处理的两种类型。checked异常是指程序中可以预测的异常,例如无效的用户输入、文件不...
- **事物隔离级别**:Spring支持SQL的四种隔离级别,包括READ_UNCOMMITTED(读未提交)、READ_COMMITTED(读已提交)、REPEATABLE_READ(可重复读)和SERIALIZABLE(串行化)。选择合适的隔离级别可以防止脏读、不可...
综上所述,"springCloud-rabbitmq分布事物实现.zip"这个实例主要展示了如何在Spring Cloud环境中利用RabbitMQ解决分布式事务问题。通过理解RabbitMQ的事务机制、Spring Cloud的集成方式以及分布式事务的各种策略,...
- 编程式事务管理允许在代码中直接控制事务的开始、提交、回滚等操作,使用`PlatformTransactionManager`接口和`TransactionDefinition`、`TransactionStatus`等类。这种方式虽然灵活,但侵入性较强,不推荐在业务...
标题"spring编程式事物"主要关注的是编程式事务管理。这种方式允许开发者通过`PlatformTransactionManager`接口和`TransactionDefinition`接口来控制事务的生命周期。在Spring中,通常使用`TransactionTemplate`或者...
模拟订单和库存的一个简单案例实现,注册到nacos配置中心,通过feign远程调用模拟异常进行全局事物回滚。 内含sql文件,nacos、seata安装包以及对应seata配置所需的script脚本(也可自行官网下载) ...
本章将详细探讨Spring4中的切面事务处理、事物通知以及传播行为。 一、切面编程(AOP) 切面编程是Spring框架的一大特色,它允许开发者将关注点如日志记录、事务管理等从主业务逻辑中分离出来,形成独立的模块,即...