Spring事务管理的回滚

1.Spring对事务的控制,默认情况下只对继承自RuntimeException和Error的非检查型异常进行回滚

    继承自Exception的检查型异常默认不回滚

2.非检查型异常可以不用捕获,检查型异常必须try语句块处理或者声明抛给上级,才可以

3.如果异常被try{}catch{}了,事务将不回滚,如果想让事务回滚,必须抛出个非检查型异常

3.spring中的事务配置文件可以修改默认的回滚与否

   <!-- 配置事务的通知 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
            <tx:method name="insert*" propagation="REQUIRED" no-rollbackfor="java.lang.RuntimeException/>
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            
            <tx:method name="get*" read-only="true" />
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>

原文地址:https://www.cnblogs.com/2nao/p/6583034.html