spring實現事務原理


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,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM