您的位置:首页 > 编程语言 > ASP

spring事务配置 :基于AspectJ的XML方式

2017-11-22 13:30 543 查看
常用配置:
<!-- 配置事务管理器 --><bean id="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="insert*" propagation="REQUIRED"/><tx:method name="save*" propagation="REQUIRED"/><tx:method name="do*" propagation="REQUIRED"/><tx:method name="add*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/><tx:method name="get*" propagation="SUPPORTS" read-only="true"/><tx:method name="select*" propagation="SUPPORTS" read-only="true"/><tx:method name="*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><!-- 配置切面 --><aop:config><!--配置切入点--><aop:pointcut id="transactionPointcut" expression="execution(* com.heyin.zkgj.service..impl..*.*(..))"/><!--配置切面 当配置了多个切入点,可用<aop:aspect来配置多个切面--><aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice"/></aop:config><!-- Spring AOP config解释一下(* com.heyin.zkgj.service..impl..*.*(..))中几个通配符的含义:第一个 * —— 通配 任意返回值类型第二个 * —— 通配 com.heyin.zkgj.service..impl包或子包下的任意class第三个 * —— 通配 com.heyin.zkgj.service..impl包或子包下的任意class的任意方法第四个 .. —— 通配 方法可以有0个或多个参数-->
<tx:advice/>
 有关的设置
这一节里将描述通过 
<tx:advice/>
 标签来指定不同的事务性设置。默认的 
<tx:advice/>
 设置如下: 事务传播设置是 
REQUIRED
隔离级别是 
DEFAULT
事务是 读/写事务超时默认是依赖于事务系统的,或者事务超时没有被支持。任何 
RuntimeException
 将触发事务回滚,但是任何 checked 
Exception
 将不触发事务回滚 这些默认的设置当然也是可以被改变的。 
<tx:advice/>
 和 
<tx:attributes/>
 标签里的 
<tx:method/>
 各种属性设置总结如下: 表 9.1. 
<tx:method/>
 有关的设置
属性是否需要?默认值描述
name
 与事务属性关联的方法名。通配符(*)可以用来指定一批关联到相同的事务属性的方法。 如:
'get*'
'handle*'
'on*Event'
等等。
propagation
REQUIRED事务传播行为
isolation
DEFAULT事务隔离级别
timeout
-1事务超时的时间(以秒为单位)
read-only
false事务是否只读?(典型地,对于只执行查询的事务你会将该属性设为true,如果出现了更新、插入或是删除语句时只读事务就会失败)
rollback-for
 将被触发进行回滚的 
Exception(s)
;以逗号分开。 如:
'com.foo.MyBusinessException,ServletException'
no-rollback-for
 不 被触发进行回滚的 
Exception(s)
;以逗号分开。 如:
'com.foo.MyBusinessException,ServletException'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: