首页 > 其他分享 >Spring事务的实现方式和原理以及隔离级别

Spring事务的实现方式和原理以及隔离级别

时间:2023-02-01 23:12:12浏览次数:36  
标签:事务 隔离 Spring Transactional 方法 提交 注解 级别

事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。
Spring中有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。
比如我们可以在某个方法上增强@Transactional注解,就可以开启事务,这个方法中所有的sql都会在一个事务中执行,统一成功或失败。
在一个方法上加了@Transactional注解后,Spring会基于这个类生成一个代理对象,会将这个代理对象作为Bean,当在使用这个代理对象的方法时,如果这个方法上存在@Transactional注解,那么代理逻辑会先把事务的自动提交设置为false,然后再去执行原来的业务逻辑方法,如果执行业务逻辑方法没有异常,那么代理逻辑中会将事务进行提交,如果执行业务逻辑方法出现了异常,那么则会将事务回滚。
当然,针对哪些异常回滚事务也是可以配置的,可以利用@Transactional注解中的rollbackFor属性进行配置,默认情况下会对RuntimeException和Error回滚。

事务隔离级别

  • 读未提交(会产生脏读问题,即读到其它事务未提交的数据)
  • 读已提交(会产生不可以重复读问题,即第二次读取时数据被修改)
  • 可重复读(mysql默认级别,可以阻止脏读和不可重复读,但幻读仍有可能发生)
  • 串行化(事务挨个执行,效率低)

标签:事务,隔离,Spring,Transactional,方法,提交,注解,级别
From: https://www.cnblogs.com/ccx-lly/p/17084412.html

相关文章

  • Spring Security Form表单认证代码实例
    SpringSecurityForm表单认证SpringSecurity中,常见的认证方式可以分为HTTP层面和表单层面,如下:HTTP基本认证Form表单认证HTTP摘要认证SpringSecurityForm表单实......
  • 过滤器(springboot)
    实现步骤:1、创建自定义过滤器LoginCheckFilter2、在启动类上加入注解@ServletComponentScan3、完善过滤器的处理逻辑②:定义Spring管理的类(接口) @Slf4j@SpringBootAppl......
  • Spring:AOP
    目录场景模拟声明接口创建实现类创建带日志功能的实现类现有问题现有代码缺陷解决思路困难代理模式概念介绍生活中的代理相关术语静态代理动态代理测试AOP概念及相关术语概......
  • springcloud alibaba 整合nacos&dubbo
    1.创建父模块创建maven模块,不用勾选任何东西依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="......
  • springboot~WebMvcConfigurer详解
    1.前言WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor......
  • spring中12种@Transactional的失效场景
    转载自:链接Spring为了更好的支撑我们进行数据库操作,在框架中支持了两种事务管理的方式:编程式事务声明式事务日常我们进行业务开发时,基本上使用的都是声明式事务,即为使......
  • springboot+webSocket
    1、新建WebSocketConfig配置类packagecom.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configurat......
  • 随堂笔记3-spring之底层架构核心概念解析
    1.BeanDefinition:bean定义,有一些特定属性描述bean,比如bean类型-class,scope作用域,lazyInit是否懒加载2.beanDefinitionReader:beanDefinition读取器,比如AnnotationBeanDe......
  • springdata jpa之ddl-auto配置的属性
    参考:spring-data-jpa自动建表_糖沁的博客-CSDN博客_springdatajpa自动建表springdatajpa之ddl-auto配置的属性-King-DA-博客园(cnblogs.com)......
  • Spring Boot 和 Spring Cloud 对应关系
    版本对应关系参考:https://blog.csdn.net/weixin_45371233/article/details/125521556参考:https://blog.csdn.net/web18484626332/article/details/124475646参考:https:......