`

Spring中事务的属性(藏)

阅读更多


Spring 中事务的属性
1.传播行为
定义了关于客户端和被调用方法的事务边界。传播规则就是在说明新的事务是否要被启动或是挂起,或者方法是否要在事务环境中运行。
spring定义了7种不同的传播行为。
1)PROPAGATION_MANDATORY
  表明方法必须要在事务中运行。如果事务不存在,抛出异常
2)PROPAGATION_NESTED
  表示如果当前已经存在一个事务,则该方法应当运行在一个嵌套的事务中。被嵌套的事务可以从当前事务中单独地提交或回滚。如果当前事务不存在,就相当于PROPAGATION_REQUIRED
3)PROPAGATION_NEVER
表示当前的方法不应该运行在一个事务上下文中。如果当前存在一个事务,则会抛出一个异常。
4)PROPAGATION_NOT_SUPPORTED
表示该方法不应该在事务中运行。如果一个现有的事务正在运行中。它将在该方法的运行期间被挂起
5)PROPAGATION_REQUIRED
表示当前方法必须运行在一个事务中。如果一个现有的事务正在运行中,该方法将运行在这个事务中。否则的话,就要开始一个新的事务。
6)PROPAGATION_REQUIRES_NEW
表示当前方法必须运行在它自己的事务中。如果一个现有事务在运行的话,将在这个方法运行期间被挂起。
7)PROPAGATION_SUPPORTS
表示当前方法不需要事务处理环境,但如果有一个事务已经在运行的话,这个方法也可以在这个事务中运行
2.隔离级别
多个事务并发运行的关系。因为并发会导致以下问题
.脏读(Dirty read) 一个事务读取了被另一个事务改写但还没提交的数据。
.不可重复读(Nonrepeatable read) 一个事务执行相同的查询两次或两次以上,但每次查询结果都不同时。这由于另一个并发事务在两次查询之间更新了数据
.幻读(Phantom read)
当一个事务读取几行记录后,另一个并发事务插入一些记录,就发生了幻读
spring定义了以下5种隔离关系
1)ISOLATION_DEFAULT
使用后端数据库默认得隔离级别
2)ISOLATION_READ_UNCOMMITTED
允许你读取还未提交的改变了的数据。可能导致脏读,不可重复读,幻读
3)ISOLATION_READ_COMMITTTED
运行在并发事务已经提价后读取。可防止脏读,但不可重复读,幻读都有可能发生
4)ISOLATION_REPEATABLE_READ
对相同字段的多次读取结果是一致的,除非数据被事务本身。可防止脏读,不可重复读,但幻读仍可能发生。
5)ISOLATION_SERIALIZABLE
完全服从ACID的隔离级别,确保不发生脏读,不可重复读,幻读。它的典型做法就是完全锁定在事务中涉及的数据表。因此它是最慢地。
3.只读提示
通过只读属性,数据库可以对事务进行优化。
4.事务超时时间
设置了的话,事务在超过这个时间后就自动回滚。避免占用资源过久。

分享到:
评论

相关推荐

    【面试】Spring事务面试考点吐血整理(建议珍藏)

    本文将对Spring事务的面试考点进行总结,涵盖了事务的基本概念、 Spring事务的实现机制、AOP切面编程、事务属性的解析等方面。 一、Spring事务的基本概念 * 事务的定义:事务是一组操作的集合,可以是一个数据库...

    Spring系列面试题129道(附答案解析)

    Spring的内部bean是指在另一个bean的属性中定义的bean,它仅在包含它的外部bean的上下文中存在。 22、什么是spring装配。 Spring装配是指将对象组装到一起,并设置它们之间的依赖关系的过程。 23、自动装配有哪些...

    springMongodb参考文档中文版

    - **Spring框架**:Spring框架提供了核心的功能和服务,如依赖注入、事务管理等。 #### 7. 使用Spring Data Repositories - **核心概念**:介绍了存储库模式的基本思想及其如何简化数据访问层的开发。 - **查询方法...

    2022年StrutsHibernateSpring经典面试题收藏.doc

    Struts、Hibernate、Spring是Java Web开发中的三大框架,它们分别负责不同的职责,共同构建了高效、解耦的J2EE应用程序。Struts主要处理表现层逻辑,通过ActionServlet接收和处理用户请求,并将控制权交给业务逻辑层...

    ddd-springcloud-stream.zip

    2. **边界上下文**: DDD 中的边界上下文可以映射到 Spring Cloud Stream 中的消息通道,每个通道代表一个特定的业务领域。 3. **聚合处理**: 可以使用 Spring Cloud Stream 来处理聚合内的消息,保持业务逻辑的清晰...

    Spring与iBATIS地集成

    【Spring与iBATIS的集成】是Java开发中一个常见的技术组合,主要目的是为了实现对象关系映射(ORM)的功能,使开发者能够更方便地在Java应用中操作数据库。iBATIS虽然不像Hibernate那样广受欢迎,但其独特之处在于它...

    精品专题(2021-2022年收藏)StrutsHibernateSpring三个框架简介.doc

    Struts、Hibernate 和 Spring 是Java开发中常用的三个框架,它们分别在MVC(Model-View-Controller)架构的不同层面上发挥作用,共同构建了一个强大的企业级应用开发基础。 **Struts框架**是MVC设计模式的一个具体...

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    spring学习笔记

    - Bean 的实例化和装配:Spring 容器负责创建和管理 Bean 的生命周期,包括初始化、装配属性、调用初始化方法等。 - Bean 的 scope:`singleton` 表示单例,容器中只有一个实例;`prototype` 表示每次请求都会创建新...

    spring flexstore demo

    - **事务管理**:继承自Spring Data的优秀特性,Flexstore支持事务管理,可以确保数据的一致性和完整性。 - **数据模型映射**:类似JPA的ORM(对象关系映射)机制,Flexstore提供了一种将Java对象映射到存储后端的...

    基于Struts和Hibernate和Spring的J2EE架构研究

    - **运行时反射**:利用反射机制动态获取类的信息,以确定持久化属性。 - **持久层**:为企业级应用提供了一个抽象层,便于管理与数据库的交互。 ##### 1.3 依赖注入框架Spring Spring是一个轻量级的Java应用框架...

    Spring @Transactional工作原理详解

    在Spring框架中,`@Transactional`注解是一个强大的工具,用于声明式地管理事务。它使得开发者无需显式地在代码中控制事务的开始、提交和回滚,从而提高了代码的可读性和可维护性。下面我们将深入探讨`@...

    高效率spring+struts+hibernate分页算法

    在分页算法中,Spring主要负责配置管理和事务管理。 ##### 3.2 Struts框架 Struts是一个开源的MVC框架,用于构建企业级Java Web应用。在分页场景下,Struts主要负责处理用户请求、数据传输以及视图渲染等工作。 ##...

    大数据面试宝典包含java基础和spring面试题

    - AOP是Spring提供的另一个关键特性,用于分离横切关注点,如事务管理、日志记录等。 - 通过代理模式实现。 ##### 4. Spring MVC - Spring MVC是Spring框架的一部分,用于构建Web应用程序。 - 支持请求处理、视图...

    jQuery_API_1.4.4速查表.chm css属性速查手册.chm

    例如,`color`属性用于设置文本颜色,`font-size`定义字体大小,`margin`用于设置元素边距,而`position`属性(如static、relative、absolute和fixed)控制元素的定位方式。 **Spring 2.5** Spring 是一个开源的...

    精品专题(2021-2022年收藏)J2EE开发常用框架..doc

    以下是对标题和描述中提及的两个主要框架——Struts和Spring的详细解释: 1. **Struts框架** - **模型(Model)**:在Struts中,模型通常是一个Action类,负责处理业务逻辑。当用户发送请求时,控制器会根据struts...

    oopinspring:Spring入门(Java)面向对象的原理和理解

    面向对象编程(Object-Oriented Programming,简称OOP)是软件开发中的一种核心概念,它在Spring框架中占据了举足轻重的地位。Spring框架是Java领域最流行的框架之一,尤其在企业级应用开发中,其面向对象的设计理念...

    JAVA核心知识点整理,涵盖JAVA基础、集合类、JVM、IO/NIO、多线程、Spring原理等知识

    - **面向切面编程(Aspect-Oriented Programming)**:AOP允许开发者将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来,提高代码的可维护性和可扩展性。 以上就是关于JAVA核心知识点的详细介绍,希望可以...

    springboot 脱敏自定义注解

    在Spring中,AOP主要用于日志记录、性能监控、事务管理等方面。我们可以定义一个切面,包含一系列关注点,当这些关注点与业务代码(即切点)匹配时,切面的逻辑将被插入到切点中执行。 在本例中,"springboot 脱敏...

Global site tag (gtag.js) - Google Analytics