spring声明式事务的配置

Posted 第二人生Bonnie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring声明式事务的配置相关的知识,希望对你有一定的参考价值。

spring声明式事务配置

1、XML配置

(1)配置平台事务管理器
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>

 

(2)配置事务通知
<tx:advice id="txAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<!--对方法级别设置事务的隔离级别、传播行为-->
<!--设置了默认的隔离级别-->
<!--添加-->
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<!--删除-->
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<!--修改-->
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<!--查询-->
<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>

 

(3)配置aop
    <aop:config>
<!-- 这使用的是Spring AOP的实现 -->
<!-- advice-ref:指定advice增强类 -->
<!-- pointcut:指定切点 -->
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* *..*.*ServiceImpl.*(..))" />
</aop:config>

 

2、混合配置

(1)开启事务注解
    <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 配置事务注解驱动 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

 

(2)用@Transactional注解标注要使用事务的类或者方法

 

3、纯注解配置

@EnableTransactionManagement

 

以上是关于spring声明式事务的配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring基础:声明式事务

Spring4 -12 -声明式事务及完整的XML配置文件信息 -声明式事务中的相关属性(tx:advice的标签)

spring学习笔记声明式事务

Spring事务管理4-----声明式事务管理

Spring AOP 应用:Spring 声明式事务的支持

Spring-声明式事物