码迷,mamicode.com
首页 > 编程语言 > 详细

spring实现事务原理

时间:2019-07-25 00:23:01      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:actor   targe   service   property   jdbc   class   nal   get   rop   

spring事务实现主要有两种方法

1、编程式,beginTransaction()、commit()、rollback()等事务管理相关的方法

2、声明式,利用注解Transactional 或者aop配置

xml配置如下所示

 1     <!-- 事务管理器 -->
 2     
 3     <bean id="myTracnsactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
 4         <property name="dataSource" ref="dataSource"></property>
 5     </bean>
 6     
 7     <!-- 事务代理工厂 -->
 8     <!-- 生成事务代理对象 -->
 9     <bean id="serviceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
10         <property name="transactionManager" ref="myTracnsactionManager"></property>
11         <property name="target" ref="buyStockService"></property>
12         <property name="transactionAttributes">
13             <props>
14                 <!-- 主要 key 是方法   
15                     ISOLATION_DEFAULT  事务的隔离级别
16                     PROPAGATION_REQUIRED  传播行为
17                 -->
18                 <prop key="add*">ISOLATION_DEFAULT,PROPAGATION_REQUIRED</prop>
19                 <!-- -Exception 表示发生指定异常回滚,+Exception 表示发生指定异常提交 -->
20                 <prop key="buyStock">ISOLATION_DEFAULT,PROPAGATION_REQUIRED,-BuyStockException</prop>
21             </props>
22         </property>
23         

@Transactional注解课直接放在class或者method上面,spring容器会在调用时自动将事务织入,相当于代替程序员统一调用编程式事务方法

需要注意的事spring默认回滚的异常是RuntimeException,如果业务中需要抛出类似于IOException的异常时要修改回滚的异常为Exception,

spring实现事务原理

标签:actor   targe   service   property   jdbc   class   nal   get   rop   

原文地址:https://www.cnblogs.com/shaozhen/p/11241430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!