propagation的属性
propagation属性的7个传播行为
- REQUIRED:指定当前方法必需在事务环境中运行,如果当前有事务环境就加入当前正在执
行的事务环境,如果当前没有事务,就新建一个事务。这是默认值。 - SUPPORTS:指定当前方法加入当前事务环境,如果当前没有事务,就以非事务方式执行。
- MANDATORY:指定当前方法必须加入当前事务环境,如果当前没有事务,就抛出异常。
- REQUIRES_NEW:指定当前方法总是会为自己发起一个新的事务,如果发现当前方法已运行
在一个事务中,则原有事务被挂起,我自己创建一个属于自己的事务,直我自己这个方法commit
结束,原先的事务才会恢复执行。 - NOT_SUPPORTED:指定当前方法以非事务方式执行操作,如果当前存在事务,就把当前事
务挂起,等我以非事务的状态运行完,再继续原来的事务。 - NEVER:指定当前方法绝对不能在事务范围内执行,如果方法在某个事务范围内执行,容器
就抛异常,只有没关联到事务,才正常执行。 - NESTED:指定当前方法执行时,如果已经有一个事务存在,则运行在这个嵌套的事务中.如果
当前环境没有运行的事务,就新建一个事务,并与父事务相互独立,这个事务拥有多个可以回
滚的保证点。就是指我自己内部事务回滚不会对外部事务造成影响,只对
DataSourceTransactionManager事务管理器起效。
isolation属性有这些值: - DEFAULT:采用数据库默认隔离级别
<aop:pointcut id=“servicePointcut” expression="(execution(*
com.gx.service…Impl.(…)))"/>
<aop:advisor advice-ref=“txAdvice” pointcut-ref=“servicePointcut”/>
</aop:config>
2. SERIALIZABLE:最严格的级别,事务串行执行,资源消耗最大; - REPEATABLE_READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的
数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。 - READ_COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并
行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。 - READ_UNCOMMITTED:保证了读取过程中不会读取到非法数据。隔离级别在于处理多事务
的并发问题。
readOnly:表示对应的事务应该被最优化为只读事务。
如果值为true就会告诉Spring这个方法里面没有insert、update或者delete,你只需要提供只读的
数据库Connection就行了,这种执行效率会比read-write的Connection高,所以这是一个最优化
提示。在一些情况下,一些事务策略能够起到显着的最优化效果,例如在使用Object/Relational映
射工具(如:Hibernate或TopLink)时避免dirty checking(试图“刷新”)。
timeout:指定事务超时为几秒。
一般不会使用这个属性。在JTA中,这将被简单地传递到J2EE服务器的事务协调程序,并据此得到
相应的解释。
propagation的属性相关推荐
- Springboot、Mybatis 事务示例
2019独角兽企业重金招聘Python工程师标准>>> 摘要 这篇文章主要记录Springboot下单数据源.多数据源配置,以及事务的常见属性配置.重点理解事务的隔离级别.传播属性. ...
- 编程式事务与声明式事务
编程式事务 1.加入jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar co ...
- Spring事务传播行为详解
前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为.事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为.这是Spring ...
- 太难了~面试官让我结合案例讲讲自己对Spring事务传播行为的理解!
摘要: 原创出处 sf.gg/a/1190000013341344 「handaqiang」欢迎转载,保留摘要,谢谢! 前言 基础概念 1. 什么是事务传播行为? 2. Spring 中七种事务传播行 ...
- spring @Transactional注解参数详解
事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: @Transactional public class TestServiceBean imp ...
- Spring 事务相关及@Transactional的使用建议
使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/ ...
- SpringBoot 中的事务处理 @Transactional
一.什么是事务? 一个事务一旦其中有一个操作出现错误,事物的操作将全部回滚.系统将事务中对数据库的所有的已完成的操作全部撤消,回滚到事务开始的状态. 一个事务中的所有操作作为一个单元,要么完全地执行, ...
- 事物注解方式: @Transactional
当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService { ...
- Spring 注解方式实现 事务管理
2019独角兽企业重金招聘Python工程师标准>>> 使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="h ...
最新文章
- SyntaxError: Non-ASCII character ‘\xe5‘ in file(xxlrt_1.py) on line 7, but no encoding declared;
- 为你解读7大类深度CNN架构创新综述(附论文)
- linux 的重定向、管道、xargs 命令
- Python 程序开发90个注意事项
- 蛤玮打扫教室(区间覆盖)
- 分布式框架seata启动命令
- matlab在一个坐标系画不同三维图,怎么用多个色标
- 盛松成:别死盯着M2不放,社会融资规模更能反映中国实际
- python编写姓名年龄_python小工具 - alert弹框输出姓名年龄、求和
- C#实现DataTable按天分组并计数
- 什么是区块链――区块链的分布式数据库、共识机制
- 3个人的java 实验_20165104-JAVA第三次实验
- jedate change事件监控,使用jedate无法使用change事件
- FFmpeg下载网络视频流
- 周立功CAN通讯(txt格式) 报文解析
- [Nowcoder] 2021年度训练联盟热身训练赛第六场 Mini Battleship | 深搜 回溯 乱搞
- 用python设置背景音乐_用Python设置
- ept技术_Intel虚拟化技术——EPT、VPID
- [数据结构 算法] A*算法--罗马尼亚度假问题(实验课作业)
- 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
热门文章
- 论文完成过程中发现的重要问题
- UI 设计初学者应该怎样入门?
- 取消苹果计算机按键音,iphone11按键音怎么关闭
- 基于SSM的酒店入住预定系统(JavaWeb毕业设计源码)
- 假若没有“数字中台”,“大象”怎能翩翩起舞?
- 少年班神童今何在:牛人辈出,“让他们按常规读书才是摧残”
- 概率计算,使用DecimalFormat,保留两位小数
- 阿尔法大蛋智能机器人功能_家长使用科大讯飞阿尔法大蛋人工智能机器人TYR101优缺点评测介绍...
- Mybatis动态sql标签说明
- html5下拉幻灯片插件,强大实用的jQuery幻灯片插件Owl Carousel