Spring的事务管理的几种方法

本文介绍了Spring框架中的事务管理方法,包括编程式事务管理和声明式事务管理,并详细解释了如何使用注解实现声明式事务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring的事务管理的几种方法:



1.在JDBC中设置conn 。setAutocommit 设置自动提交为false ,用手动提交。

2.在spring配置文件里面,设置事务传播特性。对应的方法 ,设置相应的事务策略。

编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理

(编程式事务管理 http://www.cnblogs.com/wangFengyi/archive/2012/07/13/2590566.html)

也可以使用PlatformTransactionManager直接管理事务。简单地通过一个bean引用给你的bean传递一个你使用的 PlatformTransaction对象。
然后,使用TransactionDefinition和TransactionStatus对象就可以发起、回滚、提交事务。如下片段:

DefaultTransactionDefinition def= new DefaultTransactionDefinition(); //new 一个事务            
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); //   初始化事务,参数定义事务的传播类型; 
TransactionStatus status =   transactionManager.getTransaction(def); //获得事务状态 try...{ 
transactionManager.commit(status); //提交事务; 
}catch(…..)...{ transactionManager.rollback(status); //回滚事务; }  


Spring也提供声明式事务管理。这是通过AOP实现的。大多数Spring用户选择声明式事务管理,这是最少影响应用代码的选择,因而这是和非侵入性的轻量级容器的观念是一致的。
声明式事务管理:就是通过spring的配置来配置事务传播特性
<bean id="transactionService"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> 
<property name="transactionManager"> 
<ref   local="transactionManager"/> 
property> 
<property  name="target"> 
<ref  local="transactionServiceControl"/> 
property> 
<property  name="transactionAttributes"> 
<props> 
<prop key=”insert*”>PROPAGATION_REQUIRED,-MyCheckedExceptionprop> 
<prop key=”update*”>PROPAGATION_REQUIREDprop> 
<prop key=”*”>PROPAGATION_REQUIRED,readOnlyprop> 
props> 
property> 
bean> 


3.

注解也属于声明式事务中的一种

  用注解的方式,<tx:annotation-driven>元素告诉spring检查上下文中所有的bean并查找使用@Transactional注解的bean,

注解不管是类级别还是方法级别上的,都会自动为它添加事务通知。通知事务的熟悉过是通过@Transactional注解的参数来定义的。


@Transactional(propagation=Propagation.SUPPORTS,readonly =false )

  public void addSpitter(Spitter spitter)

{



}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值