Spring 声明式事物

一、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

posted @ 2017-11-19 23:17  村上挪威  阅读(114)  评论(0编辑  收藏  举报