spring 中事务的PROPAGATION_REQUIRED,Readonly的解释
一、事务传播行为种类
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,
它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
事务传播行为类型
| 
 事务传播行为类型  | 
 说明  | 
| 
 PROPAGATION_REQUIRED  | 
 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。  | 
| 
 PROPAGATION_SUPPORTS  | 
 支持当前事务,如果当前没有事务,就以非事务方式执行。  | 
| 
 PROPAGATION_MANDATORY  | 
 使用当前的事务,如果当前没有事务,就抛出异常。  | 
| 
 PROPAGATION_REQUIRES_NEW  | 
 新建事务,如果当前存在事务,把当前事务挂起。  | 
| 
 PROPAGATION_NOT_SUPPORTED  | 
 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。  | 
| 
 PROPAGATION_NEVER  | 
 以非事务方式执行,如果当前存在事务,则抛出异常。  | 
| 
 PROPAGATION_NESTED  | 
 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。  | 
http://xuezhongfeicn.blog.163.com/blog/static/224601412010314239632/
二、Readonly的解释:
“只读事务”并不是一个强制选项,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。
但是你非要在“只读事务”里面修改数据,也并非不可以,只不过对于数据一致性的保护不像“读写事务”那样保险而已。
因此,“只读事务”仅仅是一个性能优化的推荐配置而已,并非强制你要这样做不可
spring 中事务的PROPAGATION_REQUIRED,Readonly的解释的更多相关文章
- Spring中事务的5种属性总结
		
Sping的事务 和 数据库的事务是不同的概念,数据库的事务一般称为底层事务 Spring的事务是对这种事务的抽象 我称之为逻辑事务 Spring对事务的功能进行了扩展,除了基本的Isolation之 ...
 - Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
		
Spring中事务的使用示例.属性及使用中可能出现的问题 前言 本专题大纲如下: 对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细,本来是想在源码分析的文章中附带讲一讲事务使用中的 ...
 - Spring中IOC和AOP的详细解释(转)
		
原文链接:Spring中IOC和AOP的详细解释 我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂 ...
 - 【面试普通人VS高手系列】Spring中事务的传播行为有哪些?
		
一个工作了2年的粉丝,私信了一个比较简单的问题. 说: "Spring中事务的传播行为有哪些?" 他说他能记得一些,但是在项目中基本上不需要配置,所以一下就忘记了. 结果导致面试被 ...
 - spring对数据库的操作、spring中事务管理的介绍与操作
		
jdbcTemplate的入门 创建maven工程 此处省略 导入依赖 <!-- https://mvnrepository.com/artifact/org.springframework/s ...
 - 04 Spring:01.Spring框架简介&&02.程序间耦合&&03.Spring的 IOC 和 DI&&08.面向切面编程 AOP&&10.Spring中事务控制
		
spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ...
 - SPRING中事务的配置
		
采用这种配置策略,完全可以避免增量式配置,所有的事务代理由系统自动创建.容器中的目标bean自动消失,避免需要使用嵌套bean来保证目标bean不可被访问.这 种配置方式依赖于Spring提供的bea ...
 - 对于spring中事务@Transactional注解的理解
		
现在spring的配置都喜欢用注解,这边就说下@Transactional 一.如何开启@Transactional支持 要使用@Transactional,spring的配置文件applicatio ...
 - Spring中IOC和AOP的详细解释
		
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC就是典型的工厂模式,通过s ...
 
随机推荐
- 第一个Shader的更新,增加爆光度, 属性改为数值型(更直观,精确)
			
Shader "Castle/ColorMix" { Properties { // 基本贴图 _MainTex ("Texture Image", 2D) = ...
 - magento -- 给后台分类管理页的分类商品加一栏商品类型
			
当使用特定分类来控制前台的商品显示时,后台分类管理页的分类商品只有编号.名称.SKU和价格这几栏,选择特定商品相当不便. 可以在这里多加一栏商品类型用来筛选商品,添加的方式很简单. 打开文件/app/ ...
 - NSFileHandle 、 沙箱机制 、 属性列表
			
1 使用NSFilehandle进行数据读写 1.1 问题 NSFileManager用于实现对文件的操作,而NSFileHandle是IOS提供的对文件内容(二进制数据)进行操作的类,例如数据的读写 ...
 - Ensemble Approaches分类技术
			
所谓ensemble learning,简单来说,是指综合多种基础模型或弱分类器来完成最终的决策的机器学习方法. Bagging和Boosting(之前所提到的Adaboost)都属于这类方法. Co ...
 - Xen虚拟机磁盘镜像模板制作(三)—CentOS 7
			
这里整理下制作Xen CentOS 7磁盘镜像模版的流程: 1.创建一个将要用来安装CentOS 7系统的LV,命令如下: [root@localhost ~]# lvcreate -L 5G -n ...
 - (理论篇)53个要点提高PHP编程效率
			
用单引号代替双引号来包含字符串,这样做会更快一些.因为php会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"( ...
 - HDU 1029 Ignatius and the Princess IV --- 水题
			
HDU 1029 题目大意:给定数字n(n <= 999999 且n为奇数 )以及n个数,找出至少出现(n+1)/2次的数 解题思路:n个数遍历过去,可以用一个map(也可以用数组)记录每个数出 ...
 - android中ImageView讲解
			
1.看布局文 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
 - 关于ServiceLocator ,AdpaterAwareInterface 注入
			
今天学习zf2 的过程,视频中讲到要把数据库的中的表继承TableGateway中,然后注册在ServiceManager中,但是里面没有$adapter,需要在serviceManger,中配置in ...
 - tomcat的配置详解:[1]tomcat绑定域名
			
转自:http://jingyan.baidu.com/article/7e440953dc096e2fc0e2ef1a.html tomcat的配置详解:[1]tomcat绑定域名分步阅读 在jav ...