Spring 聲明式事物
阿新 • • 發佈:2017-11-20
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 聲明式事物