1. 程式人生 > >Spring 聲明式事物

Spring 聲明式事物

ger exceptio ati cep tro ack .class 其他 ring

一、xml配置事物管理器

    <!-- 配置事物管理器 -->  
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>  
      
    <!-- 開啟事務控制的註解支持 -->  
    <tx:annotation-driven transaction-manager="transactionManager"/>

  

二、@Transactional

三、什麽時候回滾事物

默認配置下,spring只有在拋出的異常為RuntimeException或其子類(Errors也會導致事務回滾),而其他非運行時異常則不會導致事務回滾。

可以明確的配置在拋出那哪些異常時回滾事務,包括checked異常。也可以明確定義那些異常拋出時不回滾事務。

還可以編程性的通過setRollbackOnly()方法來指示一個事務必須回滾,在調用完setRollbackOnly()後你所能執行的唯一操作就是回滾。

1 讓checked例外也回滾:在整個方法前加上 @Transactional(rollbackFor=Exception.class)

2 讓unchecked例外不回滾: @Transactional(notRollbackFor=RunTimeException.class)

參考:http://blog.csdn.net/bao19901210/article/details/41724355

Spring 聲明式事物