spring的声明式事务共有三种:一种是基于aop代理bean的方式;一种是基于简单的xml声明的tx命名空间的方式;最后一种是注释驱动事务。先来说一下spring定义事务的几个参数:传播行为、隔离级别、只读、事务超时、回滚规则。下面定义的是第一种声明式事务(基于aop代理bean的方式):
<bean id=”someService” class=” org.springframework.Transaction.interceptor.TransactionProxyFactoryBean”> <property name=”target” ref=”someServiceTarget” /> <property name=”proxyInterfaces” ref=”com.alibaba.service.SomeService” /> <property name=” transactionManager” ref=” transactionManager” /> <property name=” transactionAttributes”> <props> <prop key=”add*”>…</props> <prop key=”*”>…</props> </props> </property> </bean> 上面的transactionManager可以是前面提到的任何一种spring事务管理器。而transactionAttributes属性则是指明了事务的具体参数。它含有一个props集,该集含有N个prop属性,每个<prop>的键是一个方法名称的模式,而其具体指则是事务的具体参数。其中事务的具体参数的顺序为:传播行为(必选)、隔离级别(可选)、是否只读(可选)、回滚规则(可选),他们之间以逗号隔开。
事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: 事务传播行为类型
|
|
来自: rui5327 > 《springmvc》