tx:advice标签
在学习事务管理的过程中,我们了解到数据库的四种隔离级别读未提交,读已提交,可重复读,不可重复读,在spring当中也对其进行了规范和整合,我们该如何对于这个transamanager的标签机型更深入的了解呢,ok,together
transactionManager
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"></bean><tx:advice id="txadvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <tx:method name="add*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <tx:method name="insert*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <tx:method name="create*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <tx:method name="update*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <tx:method name="delete*" propagation="REQUIRED" isolation="READ_COMMITTED"/> <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></tx:advice>
相信大家对于这段代码已经十分熟悉了,对于transactionManager(事务管理)的配置,首先声明的是配置头,即是在xml namespace里的tx标签
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd"
顾名思义,xsi 即是xml schema instance的缩写,xml的示例模板的简称,则tx就是transaction xml的标签,这么理解起来就能解释为啥tx标签不需要像其他元素一样在bean<>里面声明了。
tx:<>
就像大家见到的一样,<tx:advice>
标签凭借<tx:attribute/>
.更加简便的管理事务属性,<tx:attribute>
只接受<tx:method>
作为其子元素
对于<tx:method>
有下面几个属性
name:方法名的匹配模式,根据该模式寻找相对应的方法,通常使用()*进行通配
propagation:设定事务的传播级别
isolation:设定事务的隔离级别
timeout设定事务的过期时间,单位为秒
read-only:该标签为ture表示事务属于典型的只读模式
rollback-for当目标方法抛出这些异常的时候,会通知执行回滚。默认情况下为空,
no-rollback-for目标方法可以抛出这些异常导致而不会导致执行回滚,
通常情况下,不在no-rollback-for标签下的异常都会触发rollback-for导致回滚
propagation
propagation存在7种标签模式
1、required 如果存在当前事务,那么加入该事务,如果不存在事务,就创建一个事务。这是propagation的默认值
2、supports 如果当前已经存在事务,那么加入该事务,否则创建一个所谓的空事务。
3、mandatory 当前必须存在一个事务,否则抛出异常
4、requires-new 如果当前存在事务,先把当前事务相关内容封装到一个实体,然后重新创建一个新事务,并接受这个实体作为参数,用于事务恢复。
5、not-supported 如果当前存在事务,挂起当前事务,然后新的方法在没有事务的环境中执行。没有spring事务的环境下,sql的提交完全依赖于defaultAutoCommit属性值
6、never 如果当前存在事务,则抛出异常。否则在无事务的环境上执行代码
7、nested如果当前存在事务,则使用savepoint技术将当前事务状态进行保存,然后底层公用一个链接,当nested内部出现错误的时候,自行回滚到save point的状态。只要外部捕获到了异常,就可以继续进行外部事务的提交,而不会受到内嵌事务的干扰。但是,如果外部事物抛出了异常,整个大事务都会回滚。
tx:advice标签相关推荐
- Spring事务管理-tx:advice标签
首先先看一下代码: <bean name="transactionManager" class="org.springframework.jdbc.datasour ...
- Spring事务通知tx:advice标签
spring配置文件样例 简单的事务配置,对save/delete开头的方法加事务,get/find开头的设置为不加事务只读模式 <tx:advice id="txAdvice&quo ...
- spring tx:advice 和 aop:config 配置事务
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010741376/article/details/46584463 spring tx:advic ...
- Spring tx:advice/
<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传 ...
- spring tx:advice事务配置
http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html 链接归纳的很详细 首先在/WEB-INF/applicationCo ...
- tx:advice相关参数说明
通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 ...
- spring tx:advice 和 aop:config 配置事务 1
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Spring AOP tx:advice
Xml代码 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...
- spring事务管理tx:Advice详解
默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED隔离级别是 DEFAULT事务是 读/写事务超时默认是依赖于事务系统的,或者事务超时没有被支持.任何 Runt ...
最新文章
- redis 3.0 cluster 集群 学习之路篇 [3]
- Leetcode 319. 灯泡开关 解题思路及C++实现
- [转载]非常量引用的初始值必须为左值的问题
- Flex的Array和ArrayCollection
- 小程序 mathjs渲染公式_Mac 3D渲染和动画制作----KeyShot 9 Pro
- extjs树使用别的皮肤的样式_设计师发布努努重做之后的冰雪节皮肤设计稿
- [转]C#和C++结构体Socket通信
- 大文件上传NeatUpload简单用法nbsp;(…
- 2021最新前端面试题
- 洛谷P4767 [IOI2000]邮局(决策单调DP,四边形不等式优化)
- Android手机为何不再卡顿?性能优化才是安卓起飞关键
- 服务器被入侵,执行了2个非常危险的命令
- MATLAB——patch绘制多边形
- 星座图中格雷映射及其实现
- 遇上爱发牢骚的同事怎么办?
- 我的视频拍摄和剪辑秘密|故宫
- 做律师的风险不止于此啊!!
- Azureus源码剖析(二) ---解析Torrent种子文件
- 2022CoCa: Contrastive Captioners are Image-Text Fountion Models
- 【网络协议】TCP/IP 协议