天天看点

Spring自动回滚的事务管理配置

Spring提供声明式的事务管理,其对异常的处理沿用EJB的约定,即RuntimeException(运行时异常)和java.rmi.RemoteException自动回滚。   除此之外,Spring可以定制设置,使得一些Exception也可以自动回滚事务。   1. 基于配置文件

<bean id="test"

       class="org.springframework.transaction.interceptor.TransactionProxyFactoryB ean">

       <property name="transactionManager"><ref bean="transactionManager"/></property>

       <property name="target"><ref bean="testTarget"/></property>

       <property name="transactionAttributes">

               <props>

                       <prop key="insert*">PROPAGATION_REQUIRED,-MyCheckedException</prop>

                       <prop key="update*">PROPAGATION_REQUIRED</prop>

                       <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

               </props>

       </property>

</bean>

在TransactionProxyFactoryB ean的transactionAttributes属性中,定义遇到的Exception,例如MyCheckedException。   2. 基于Annotation

@Transactional(rollbackFor = MyCheckedException.class)

继续阅读