`

spring中的事物

阅读更多
1.spring默认对于runtimeException进行回滚,对于Exception不回滚,若以要对Exception进行回滚,则要使用rollbackFor=异常.class
事物传播行为
2. 一旦对类作用事物,则通过某方法上设置propagation=Propagation.NOT_SUPPORTED来表明不实用事物。
3. 默认情况下是Propagation.REQUIRED,表示若是存在事物,则使用该事物,若是不存在,则自己为该方法创建一个事物。开发中80%都是使用该事物。
4.Propagation.NOT_SUPPORTED,如果这个方法没有事物,则容器不会为该方法创建事物。如果一个已经存在事物的方法调用标注了NOT_SUPPORTED的方法,则执行到
  该方法时会先挂起事物,等到执行完后再恢复事物。
5.Propagation.REQUIREDNEW,不管被调用的方法中是否存在事物,执行到自己时都会挂起方法中的事物,然后为自己开启一个事物。等运行完毕后再回复。
6.Propagation.MANDATORY,表示该方法必须在一个已经存在事物的方法中运行。
7.Propagation.SUPPORT,表示如果一个方法在一个事物的方法中运行,则该方法也会在该事物中运行,成为该事物的一部分,如果该方法在一个不存在事物的方法中运行
  则该方法也在不存在事物的方法中运行。
8.Never表示不在事物中运行。
9.NESTED用于嵌套事物的使用,当在一个已经存在事物的方法中运行标注了NESTED的方法,就会形成嵌套的事物。
  首先开启一个事物,然后在执行NESTED时,设置一个保存点,然后创建一个新的statement执行NESTED方法,如果出现异常则标注NESTED的方法回滚到保存点
  ,接着执行外部的事物,如果外部的事物出现回滚则标注NESTED的事物也会回滚。
readonly:事物的除了设置传播行为,还可以设置是否只读,设置为只读的事物就不能进行更新操作了,效率会更高。
事物的传播行为是由spring实现的。
但是事物的隔离性不是由spring来实现的。而是由数据库来实现的。
isolation:4种
  ReadUncommited 读取未提交数据(会出现脏读,不可重复读,幻读)
  ReadCommited 读取已提交数据(会出现不可重复读,幻读)
  Repeatable 可重复读(出现幻读)
  Serializable 串行化
通过不同的锁来实现上面的隔离级别。
不同数据库默认的隔离级别是不同的。mysql默认是Repeatable

脏读:一个事物读取另一个事物为提交的数据。一个事物做了更新但是未提交。另一个事物读取,之后更新的额事物做了回滚,就会出现这个问题。
不可重复读:即在一个事物中两次读取同一数据,返回的结果是不同的,为了实现可重复读取,一般数据库采取的是快照的技术。第一次读取时记录,之后在统一事物中读取时都是读取记录的。
幻读:一个事物读取到另一个事物的insert语句。

一般使用可重复读的隔离级别。
一般采取数据库默认的隔离级别。

使用spring事物有两种方式,一种是使用注解的,需要打开spring注解配置。然后通过在类中注解进行配置。
                          另一种是基于xml,则需要利用aop。配置切点和通知。
如果只是配置spring数据源,拿到txManager,类是不受spring管理的。

分享到:
评论

相关推荐

    spring中事物配置

    在Spring框架中,事务管理是实现业务逻辑时不可或缺的一部分,它确保了数据的一致性和完整性。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。本篇将重点讲解如何利用AOP(面向切面编程)进行声明...

    spring中事物管理1

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

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

    下面将详细介绍Spring中的五种事务配置方式。 1. **基于代理的事务管理(Proxy-based Transaction Management)** - **JDK动态代理**:在没有接口的情况下,Spring会创建一个实现了目标类所有接口的代理对象,然后...

    spring事物代码片段

    spring事物代码片段,包含了定义输入传播性,和参与事物的类

    SpringJDBC事物

    SpringJDBC事物SpringJDBC事物SpringJDBC事物SpringJDBC事物SpringJDBC事物SpringJDBC事物SpringJDBC事物SpringJDBC事物

    spring事物和rabbitMQ的例子

    在IT行业中,Spring框架是Java应用开发中的基石,尤其在企业级应用中广泛使用。它提供了许多关键功能,包括依赖注入、AOP(面向切面编程)以及事务管理。本示例聚焦于Spring的事务管理和RabbitMQ的使用,这都是...

    spring事物的隔离级别

    spring事物的隔离级别,spring对于事物的操作隔离级别分为文档中的几种

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

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

    Spring_事物的写法

    根据提供的文件信息,本文将详细解析Spring框架中的事务管理配置方式及其实现原理。通过具体的XML配置示例,深入理解如何在Spring环境中设置事务管理器、AOP(面向切面编程)通知以及切入点表达式等内容。 ### ...

    spring-tx事物源码

    在Spring框架中,事务管理是核心功能之一,它提供了对应用程序数据访问层的事务支持。Spring的事务管理机制包括编程式事务管理和声明式事务管理,这两种方式都基于`spring-tx`模块。在这个源码中,我们可以深入理解...

    Spring事物配置的五种模式

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

    spring事物传播测试表

    本文将深入探讨“Spring事物传播测试表”所涉及的知识点。 首先,理解事务是非常重要的。在数据库操作中,事务确保数据的一致性和完整性。例如,一组相关的数据库操作要么全部成功,要么全部失败,这就是事务的ACID...

    spring编程式事物

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

    Spring事务管理Demo

    在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理应用中的事务。Spring事务管理的目的是确保数据的一致性和完整性,尤其是在多操作、多资源的环境中。本Demo将深入探讨Spring如何...

    spring-控制事物回滚

    在Spring框架中,事务管理是核心功能之一,它确保了数据操作的一致性和可靠性。"spring-控制事物回滚"这个主题主要涉及Spring如何在出现异常时自动或手动触发事务的回滚,以及如何配置和使用Spring的事务管理机制。...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    ### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...

    spring配置事物的5种方式

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

    spring 事物管理

    spring 事物管理

Global site tag (gtag.js) - Google Analytics