`
幽灵线程
  • 浏览: 78879 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Spring @Transactional属性说明

    博客分类:
  • java
 
阅读更多

Propagation

事务传播行为

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

Isolation

事务隔离级别

@Transactional(isolation = Isolation.READ_UNCOMMITTED)读取未提交数据(会出现脏读, 不可重复读) 基本不使用

@Transactional(isolation = Isolation.READ_COMMITTED)读取已提交数据(会出现不可重复读和幻读)

@Transactional(isolation = Isolation.REPEATABLE_READ)可重复读(会出现幻读)

@Transactional(isolation = Isolation.SERIALIZABLE)串行化

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spring中事务的传播属性详解

    ### Spring中事务的传播属性详解 #### 一、引言 在使用Spring框架进行应用程序开发时,事务管理是一项非常重要的特性。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理因其...

    jdbc+spring+mysql事务理解和分析

    在Spring中,可以通过`@Transactional`注解的`isolation`属性来设置隔离级别。 4. **持久性(Durability)**:一旦事务提交,其对数据库的更改就应永久保存,即使系统崩溃也应能恢复。在Spring中,通过`...

    零基础认识 Spring Boot.docx

    在 Service 的方法上添加@Transactional 注解,即说明其为同个事务。只有在 innodb 引擎下事务才能生效。 数据库操作 使用 JPA 可以实现数据库操作。首先需要添加 pom.xml 文件中的组件,然后配置 application.yml...

    Spring Hibernate 事务处理 详细说明

    - 注解驱动:使用`@Transactional`注解直接在服务层的方法上,指定事务属性,如传播行为、隔离级别、超时和是否只读。 2. **传播行为:**决定了事务如何在不同的调用之间传播。例如,`PROPAGATION_REQUIRED`是最...

    Spring-Reference_zh_CN(Spring中文参考手册)

    其他关于通配符的说明 4.7.3. FileSystemResource 提示 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper ...

    Springboot 常用注解汇总说明

    Spring Boot 常用注解汇总说明 一、启动注解 @SpringBootApplication 在Spring Boot应用中,`@SpringBootApplication`是最核心的注解,它实际上是一个复合注解,包含了`@SpringBootConfiguration`、`@...

    高级开发spring面试题和答案.pdf

    - 在多数据源情况下,可以使用`@Transactional`注解的`propagation`属性配合不同的数据源配置来指定事务使用的数据源。 11. **Spring的事务回滚** - Spring事务管理基于事务的ACID属性,异常发生时根据回滚规则...

    spring事务配置详解

    在类或方法上添加`@Transactional`,Spring AOP会根据注解的属性来管理事务。 **第三种方式:基于XML的声明式事务管理** 在Spring的配置文件中,使用`<tx:advice>`和`<aop:config>`元素来定义事务策略和切面。 ```...

    详细说明spring事务配置的5种方式

    通过在配置中启用AspectJ自动代理和事务注解支持,Spring会自动识别带有`@Transactional`的方法,并在运行时使用AspectJ织入事务处理代码。这种方式无需额外的代理配置,事务管理更加透明。 5. **使用...

    jta hibernate spring 集成 代码和说明

    3. **配置Hibernate**:在Hibernate的配置文件中,设置`hibernate.transaction.jta.platform`属性为Spring的`PlatformTransactionManager`实现,让Hibernate知道使用Spring管理事务。 4. **声明式事务管理**:在...

    Spring3单元测试和集成测试

    本文将深入探讨Spring3中的单元测试和集成测试,并结合DBunit这一数据库测试工具进行说明。 首先,单元测试是针对软件的最小可测试单元进行验证,通常是一个方法。在Spring3中,我们可以使用JUnit作为基础测试框架...

    struts2+hibernate+Spring 框架 关于注释用法说明

    Struts2、Hibernate和Spring是Java开发中常用的三大框架,它们各自负责Web应用程序的不同层面:Struts2处理表现层逻辑,Hibernate管理数据持久化,而Spring则提供了全面的依赖注入和事务管理。本文将深入探讨这三大...

    struts2+hibernate_spring的整合说明文档

    以下是对“struts2+hibernate_spring整合”的详细说明: 1. **Spring容器的初始化** 在`web.xml`中添加的监听器`ContextLoaderListener`用于启动Spring应用上下文。`contextConfigLocation`参数指定了Spring配置...

    spring源码 3.0.4

    以下是对这个版本中的一些关键知识点的详细说明: 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,它允许通过配置来管理对象的依赖关系,而不是硬编码在类内部。DI使得代码更易于测试和维护...

    spring声明事务的配置

    以下是对Spring声明式事务配置的详细说明: 1. **Spring 1.x 声明事务方式** 在Spring 1.x中,声明式事务有两种主要的配置方式,第一种是通过XML配置逐个为每个业务类创建事务代理。首先,你需要声明一个事务管理...

    Spring源码-interface21

    以下是对Spring 2.1版本中一些重要知识点的详细说明: 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,它允许通过容器来管理对象的创建和依赖关系。DI使得代码更加灵活,降低了组件之间的...

    spring-day04教案1

    虽然未详细说明Spring 5的新特性,但通常包括性能提升、对Java 8特性的支持(如日期和时间API)、WebFlux(响应式编程的支持)、改进的WebSocket支持、增强的缓存管理、以及对Cloud Native和Kubernetes更好的适应性...

    Spring 3.1 API

    新增的`@Transactional`注解的propagation属性允许你定义事务传播行为,如REQUIRED、REQUIRES_NEW等,控制事务的边界。同时,`@Query`注解使得你可以直接在Repository接口中编写自定义SQL或HQL查询,无需额外的DAO层...

Global site tag (gtag.js) - Google Analytics