spring的事务本质上来说还是spring的aop
不过,在aop中事务类,也就是切面类是我们提供的,但在spring事务中,事务是由spring提供的。
spring针对不同的数据库开发框架,启用了不同的事务
如jdbc中由datasource管理connection 在hibernate由sessionfactory 管理session(相当于对connection的封装)
因此采用了不同的事务类(切面)完成
xml配置示例:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
配置中isolation机制 propagation 传播机制
<!-- 通知 1、告诉spring容器,采用什么样的方法处理事务 2、告诉spring容器,目标方法应该采用什么样的事务处理策略 --> <tx:advice id="tx" transaction-manager="transactionManager"> <tx:attributes> <!-- name规定方法 isolation 默认值为DEFAULT propagation 传播机制 REQUIRED --> <tx:method name="save*" read-only="false" /> </tx:attributes> </tx:advice>
isolation
<!--
通知 1、告诉spring容器,采用什么样的方法处理事务 2、告诉spring容器,目标方法应该采用什么样的事务处理策略
-->
<tx:advice id="tx" transaction-manager="transactionManager">
<tx:attributes>
<!--
name规定方法 isolation 默认值为DEFAULT propagation 传播机制 REQUIRED
-->
<tx:method name="save*" read-only="false" />
</tx:attributes>
</tx:advice>
propagation
注解配置
详情参考 spring文档:http://download.csdn.net/detail/jinhao505/7901177
时间: 2024-11-05 14:52:28