Spring的事务管理
Spring事务管理
说明:
这里只介绍Spring是如何配置事务,其他的如项目搭建,框架的整合不做介绍。
声明式事务管理:
1、基于XML配置文件实现
2、基于注解实现
配置方法:
方法一:基于XML配置文件实现
步骤一:配置事务管理器
<!-- 配置事务管理器 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
步骤二:配置事务增强
<!-- 拦截器方式配置事物 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/> <tx:method name="append*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/> <tx:method name="del*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="repair*" propagation="REQUIRED" /> <tx:method name="reset*" propagation="REQUIRED" /> <tx:method name="getScoreList*" propagation="REQUIRED" /> <tx:method name="batch*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/> <tx:method name="get*" propagation="REQUIRED" read-only="true" /> <tx:method name="find*" propagation="REQUIRED" read-only="true" /> <tx:method name="load*" propagation="REQUIRED" read-only="true" /> <tx:method name="search*" propagation="REQUIRED" read-only="true" /> <tx:method name="datagrid*" propagation="REQUIRED" read-only="true" /> <tx:method name="querySeqNo*" propagation="NOT_SUPPORTED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" read-only="true" /> </tx:attributes> </tx:advice>
步骤三:配置切面
<aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* com.service.*.*.*(..))" /> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /> </aop:config>
方法二:基于注解实现
步骤一:配置事务管理器
<!-- 配置事务管理器 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
步骤二:配置事务注解
<tx:annotation-driven transaction-manager="transactionManager" />
步骤三:在要使用事务的方法所在类上使用注解
总结:以上就是Spring事务的两种不同的配置方式,根据需要选择其中一种即可。