在学习事务管理的过程中,我们了解到数据库的四种隔离级别读未提交,读已提交,可重复读,不可重复读,在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标签相关推荐

  1. Spring事务管理-tx:advice标签

    首先先看一下代码: <bean name="transactionManager" class="org.springframework.jdbc.datasour ...

  2. Spring事务通知tx:advice标签

    spring配置文件样例 简单的事务配置,对save/delete开头的方法加事务,get/find开头的设置为不加事务只读模式 <tx:advice id="txAdvice&quo ...

  3. spring tx:advice 和 aop:config 配置事务

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010741376/article/details/46584463 spring tx:advic ...

  4. Spring tx:advice/

    <tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传 ...

  5. spring tx:advice事务配置

    http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html 链接归纳的很详细 首先在/WEB-INF/applicationCo ...

  6. tx:advice相关参数说明

    通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 ...

  7. spring tx:advice 和 aop:config 配置事务 1

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. Spring AOP tx:advice

    Xml代码   <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...

  9. spring事务管理tx:Advice详解

    默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED隔离级别是 DEFAULT事务是 读/写事务超时默认是依赖于事务系统的,或者事务超时没有被支持.任何 Runt ...

最新文章

  1. redis 3.0 cluster 集群 学习之路篇 [3]
  2. Leetcode 319. 灯泡开关 解题思路及C++实现
  3. [转载]非常量引用的初始值必须为左值的问题
  4. Flex的Array和ArrayCollection
  5. 小程序 mathjs渲染公式_Mac 3D渲染和动画制作----KeyShot 9 Pro
  6. extjs树使用别的皮肤的样式_设计师发布努努重做之后的冰雪节皮肤设计稿
  7. [转]C#和C++结构体Socket通信
  8. 大文件上传NeatUpload简单用法nbsp;(…
  9. 2021最新前端面试题
  10. 洛谷P4767 [IOI2000]邮局(决策单调DP,四边形不等式优化)
  11. Android手机为何不再卡顿?性能优化才是安卓起飞关键
  12. 服务器被入侵,执行了2个非常危险的命令
  13. MATLAB——patch绘制多边形
  14. 星座图中格雷映射及其实现
  15. 遇上爱发牢骚的同事怎么办?
  16. 我的视频拍摄和剪辑秘密|故宫
  17. 做律师的风险不止于此啊!!
  18. Azureus源码剖析(二) ---解析Torrent种子文件
  19. 2022CoCa: Contrastive Captioners are Image-Text Fountion Models
  20. 【网络协议】TCP/IP 协议

热门文章

  1. 关于手机信号强度单位db和dBm
  2. python字母对照表_Python获取字母表
  3. 分享几个翻译PDF的软件给你
  4. 【BZOJ 2054】 疯狂的馒头
  5. 鸿蒙系统之铠甲勇士,国漫几部经典机甲排行,铠甲勇士落榜,第一名竟是抄袭漫威...
  6. 这十个时间千万别受孕
  7. python 英文关键词提取_python 利用jieba.analyse进行 关键词提取
  8. 努力工作,却永不升职,是种怎样的体验?
  9. 情人节如何表达你的“心”
  10. 女大学生王婷婷致信给网上春光照女主角