Spring申明式事务有两种方式:
- 基于配置文件
- 基于注解
一、基于配置文件的事务
<!-- 会重复读,不会脏读事务 -->
<tx:advice id="defaultTxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" timeout="120" propagation="REQUIRED" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pointcut" expression="..."/>
<aop:advisor advice-ref="defaultTxAdvice" pointcut-ref="pointcut" />
</aop:config>
二、基于注解的事务
<tx:annotation-driven transaction-manager="transactionManager"/>