`

spring 注解事物

    博客分类:
  • java
 
阅读更多

@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)


@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务


@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务


@Transactional(propagation=Propagation.MANDATORY)
必须在一个已有的事务中执行,否则抛出异常


@Transactional(propagation=Propagation.NEVER)
必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)


@Transactional(propagation=Propagation.SUPPORTS)
如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务


@Transactional(timeout=30) //默认是30秒

事物超时设置

 

@Transactional(isolation = Isolation.READ_UNCOMMITTED)

读取未提交数据(会出现脏读, 不可重复读) 基本不使用


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


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


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

 

MYSQL: 默认为REPEATABLE_READ级别
SQLSERVER: 默认为READ_COMMITTED

脏读 : 一个事务读取到另一事务未提交的更新数据
不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说,
后续读取可以读到另一事务已提交的更新数据. 相反, "可重复读"在同一事务中多次
读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据
幻读 : 一个事务读到另一个事务已提交的insert数据

分享到:
评论

相关推荐

    spring中事物配置

    Spring提供了几种事务通知类型,如`@Transactional`注解、`tx:advice`元素等。在XML配置中,我们可以使用`<tx:advice>`元素来定义一个事务通知: ```xml *" propagation="REQUIRED"/> ``` 这里,`*`表示...

    spring的5中事物配置 介绍spring的5中事物配置

    - Spring 3.0引入了基于Java的配置,事务管理可以通过`@EnableTransactionManagement`注解开启,然后在配置类中使用`@Transactional`注解进行方法级别的事务配置,或者使用`@Configuration`和`@Bean`定义事务管理器...

    spring-tx事物源码

    源码分析中,我们可以看到Spring如何在运行时解析`@Transactional`注解,如何创建和维护事务,以及如何处理异常以决定事务是否需要回滚。例如,当出现未检查异常(继承自`RuntimeException`的异常)时,Spring会默认...

    第十四章 Spring4 切面事物与事物通知与传播行为

    本章将详细探讨Spring4中的切面事务处理、事物通知以及传播行为。 一、切面编程(AOP) 切面编程是Spring框架的一大特色,它允许开发者将关注点如日志记录、事务管理等从主业务逻辑中分离出来,形成独立的模块,即...

    spring + hinbernate(注解完整工程part4)

    spring注解+hinbernate注解 事物配置 这是第4部分有问题可以联系我QQ 523998647

    spring boot注解事务+多线程

    本示例将深入探讨如何使用注解来实现事务控制以及如何在Spring Boot中运用多线程。 首先,让我们关注"注解事务"。在Spring框架中,我们主要依赖`@Transactional`注解来声明事务边界。当一个方法被这个注解标记时,...

    spring中事物管理1

    【Spring 中的事务管理】 在 Spring 框架中,事务管理是确保应用程序在处理数据库操作时遵循 ACID(原子性、一致性、隔离性和持久性)原则的关键组件。ACID 是事务处理的基本准则,保证了数据的一致性和完整性。 1...

    Spring事物配置的五种模式

    ### Spring事务配置的五种模式详解 在Spring框架中,事务管理是十分重要的特性之一,它可以帮助开发者确保数据的一致性和完整性。对于不同的业务场景,Spring提供了多种事务配置的方式,以便于灵活应对各种需求。...

    spring配置事物的5种方式

    在Spring框架中,事务管理是核心功能之一,它确保了数据操作的一致性和完整性。本文将详细介绍SSH(Spring、Struts、Hibernate)框架整合时,Spring配置事务的五种方式。首先,我们要理解Spring事务配置的基本组成...

    spring.net 声明式事物管理小示例

    Spring.NET 是一个基于 .NET Framework 的轻量...通过这个小示例,你将学习如何在 Spring.NET 中设置声明式事务管理,以及如何通过配置和注解控制事务的行为。这有助于创建更稳定、可扩展和易于维护的 .NET 应用程序。

    注释事物控制

    本篇文章将详细探讨“注释事物控制”在Spring MVC与Hibernate集成环境下的应用。 首先,我们来了解Spring中的事务管理。Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理通过...

    spring-控制事物回滚

    "spring-控制事物回滚"这个主题主要涉及Spring如何在出现异常时自动或手动触发事务的回滚,以及如何配置和使用Spring的事务管理机制。我们将深入探讨Spring事务管理的原理、API使用以及在实际开发中的应用。 首先,...

    spring编程式事物

    标题"spring编程式事物"主要关注的是编程式事务管理。这种方式允许开发者通过`PlatformTransactionManager`接口和`TransactionDefinition`接口来控制事务的生命周期。在Spring中,通常使用`TransactionTemplate`或者...

    Spring事务管理Demo

    2. **声明式事务管理**:这是Spring最常用的方式,通过在配置文件或者使用`@Transactional`注解来定义事务边界,使得事务管理与业务逻辑分离,降低了代码的耦合度。`@Transactional`注解可以应用于方法级别,表示该...

    Spring声明式事务配置模板2.x

    综上所述,Spring 2.x的声明式事务配置模板主要由`applicationContext.xml`中的事务管理器配置和注解驱动的事务管理两部分组成,结合`@Transactional`注解在业务逻辑中的使用,可以实现自动化、高效且易于维护的事务...

    第八节-spring-事物源码解析1

    - **声明式事务管理**:基于AOP(面向切面编程),通过在方法或类上添加@Transactional注解来声明事务属性,由Spring容器在运行时自动处理事务开始、提交或回滚。 - **编程式事务管理**:在代码中显式调用...

    事物简单总结(偏向Spring事物)

    在配置文件中声明事务属性,如事务的传播行为、隔离级别、超时时间、是否回滚等,然后在方法上添加@Transactional注解,Spring会在背后自动进行事务管理。这种方式降低了代码耦合,使事务管理更加集中,易于维护。 ...

    spring-控制事物

    MyBatis是一个轻量级的持久层框架,它允许开发者通过XML或注解定义SQL语句,然后在Spring中通过SqlSessionTemplate或SqlSessionFactoryBean进行事务管理。在这样的集成环境中,Spring的事务管理能覆盖到MyBatis的...

Global site tag (gtag.js) - Google Analytics