下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 spring事务管理tx:Advice详解默认的 设置如下:任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚这些默认的设置当然也是可以被改变的。 和 标签的 各种属性设置总结如下:rollback-for/no-rollback-for:配置哪些异常可以导致/不导致回滚,在默认情况下,抛出RuntimeException或其类将导致回滚,其它异常不会导致回滚.tx:method属性类型默认值说明与事务属性关联的法名。通配符(*)可以来指定批关联到相同的事务属性的name是法。 如:get* 、handle* 、on*Eve
2、nt 等等。propagationREQUIREDDEFAULT(所数据库默认级别)isolationread-onlytimeoutbooleanintfalse-1是否才优化的只读事务超时(秒)rollbackForClass需要回滚的异常类不需要回滚的异常类noRollbackFor ClassSpring中事物的传播级别:PROPAGATION_REQUIRES_NEW-新建事务,如果当前存在事务,把当前事务挂起。PROPAGATION_NOT_SUPPORTED-以事务式执操作,如果当前存在事务,就把当前事务挂起。PROPAGATION_NEVER-以事务式执,如果当前存在事务,则抛
3、出异常。/*/* */int PROPAGATION_REQUIRED = 0;/* Support a current transaction, execute non-transactionally if none exists.*/*/int PROPAGATION_MANDATORY = 2;/*int PROPAGATION_REQUIRES_NEW = 3;/*int PROPAGATION_NEVER = 5;/*int PROPAGATION_NESTED = 6; *sample*ServiceA /* 事务属性配置为 PROPAGATION_REQUIRED*/* 事务属性
4、配置为 PROPAGATION_REQUIRED*/*1: PROPAGATION_REQUIRED加当前正要执的事务不在另外个事务,那么就起个新的事务如说,ServiceB.methodB的事务级别定义为PROPAGATION_REQUIRED, 那么由于执ServiceA.methodA的时候,ServiceA.methodA已经起了事务,这时调ServiceB.methodB,ServiceB.methodB看到已经运在ServiceA.methodA的事务内部,就不再起新的事务。假如ServiceA.methodA运的时候发现没有在事务中,他就会为分配个事务。这样,在ServiceA.
5、methodA或者在ServiceB.methodB内的任何地出现异常,事务都会被回滚。即使ServiceB.methodB的事务已经被提交,但是ServiceA.methodA在接下来fail要回滚,ServiceB.methodB也要回滚2: PROPAGATION_SUPPORTS如果当前在事务中,即以事务的形式运,如果当前不再个事务中,那么就以事务的形式运3: PROPAGATION_MANDATORY必须在个事务中运。也就是说,他只能被个事务调。否则,他就要抛出异常4: PROPAGATION_REQUIRES_NEW这个就较绕了。 如我们设计ServiceA.methodA的事务级
6、别为如果他抛出的异常被ServiceA.methodA捕获,ServiceA.methodA事务仍然可能提交。5: PROPAGATION_NOT_SUPPORTED 当前不持事务。如ServiceA.methodA的事务级别是PROPAGATION_REQUIRED ,ServiceB.methodB的事务级别是PROPAGATION_NOT_SUPPORTED , 那么当执到ServiceB.methodB时,ServiceA.method的事务挂起,他以事务的状态运完,再继续ServiceA.methodA的事务。6: PROPAGATION_NEVER不能在事务中运。假设Service
7、A.methodA的事务级别是PROPAGATION_REQUIRED,ServiceB.methodB的事务级别是PROPAGATION_NEVER , 那么ServiceB.methodB就要抛出异常了。7: PROPAGATION_NESTED理解Nested的关键是savepoint。他与PROPAGATION_REQUIRES_NEW的区别是,PROPAGATION_REQUIRES_NEW另起个事务,将会与他的事务相互独,Nested的事务和他的事务是相依的,他的提交是要等和他的事务块提交的。也就是说,如果事务最后回滚,他也要回滚的。Nested事务的好处是他有个savepoint。*ServiceA /* 事务属性配置为 PROPAGATION_REQUIRED*/savepointServiceB.methodB(); /PROPAGATION_NESTED 级别 catch (SomeException) / 执其他业务, 如 ServiceC.methodC()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国隧道建设行业竞争状况及投资发展前景分析报告新版
- 二零二五年预算管理财务会计岗位劳动合同书3篇
- 2025-2030年中国链条行业市场运行状况及前景趋势分析报告
- 2025年度屋顶绿化与楼顶广告一体化设计合同4篇
- 2025-2030年中国金属粉末市场十三五发展及投资前景预测报告
- 2025-2030年中国超市货架市场发展状况及投资前景规划研究报告
- 2025-2030年中国自卸车行业供需现状及投资发展规划研究报告
- 2025-2030年中国绿色建筑行业发展趋势规划研究报告
- 2025-2030年中国纤维素酒精行业市场运营现状及投资前景规划研究报告
- 2025-2030年中国粮食市场运营状况与发展潜力分析报告
- 常见老年慢性病防治与护理课件整理
- 履约情况证明(共6篇)
- 云南省迪庆藏族自治州各县区乡镇行政村村庄村名居民村民委员会明细
- 设备机房出入登记表
- 六年级语文-文言文阅读训练题50篇-含答案
- 医用冰箱温度登记表
- 零售学(第二版)第01章零售导论
- 大学植物生理学经典05植物光合作用
- 口袋妖怪白金光图文攻略2周目
- 光伏发电站集中监控系统通信及数据标准
- 三年级下册生字组词(带拼音)
评论
0/150
提交评论