首页 > 编程语言 >spring声明事务和编程式事务

spring声明事务和编程式事务

时间:2025-01-16 15:31:06浏览次数:3  
标签:事务 开发人员 spring Transactional 编程 Spring 方法

什么是事务?
事务是指对数据库中的数据做出一系列操作,事务具有不可分割性、一致性、隔离性和持久性等特征。
在Spring框架中,事务管理支持两种方式:声明式事务和编程式事务。
编程式事务是指通过手动编写代码来管理事务的提交和回滚。在Spring框架的早期版本中,就已经提供了编程式事务的支持。开发人员可以通过使用Spring提供的事务管理器(如PlatformTransactionManager)来手动控制事务的边界、提交和回滚。

声明式事务允许开发人员通过注解或XML配置的方式来控制事务的提交和回滚,而无需编写繁琐的事务管理代码。这种方式使得开发人员可以更加专注于业务逻辑的实现,而将事务管理的细节交给Spring框架来处理。

在Spring框架中,@Transactional注解是声明式事务管理的主要方式。通过在方法或类上添加@Transactional注解,开发人员可以轻松地指定哪些方法需要事务支持,并配置相关的事务属性(如传播行为、隔离级别、超时时间等)。

编程式事务是需要我们手动去写创建和执行的,非常麻烦。
在这里插入图片描述
springboot中声明式事务只需要加一个注解就可以完成这些一些重复性操作:(这里最好不要写在测试类中,可能会出问题,测试框架(如 JUnit)通常有自己的事务管理机制)
在这里插入图片描述
我们只需要关心sql的执行,不需要去管数据库的连接,事务的提交和回滚问题。
@Transactional注解的使用:
@Transactional 可以标记在类上面(当前类所有的方法都运用上了事务)
@Transactional 标记在方法则只是当前方法运用事务
也可以类和方法上面同时都存在,如果类和方法都存在@Transactional会以方法的为准。如果方法上面没有@Transactional会以类上面的为准
建议:@Transactional写在方法上面,控制粒度更细,建议@Transactional写在业务逻辑层上,因为只有业务逻辑层才会有嵌套调用的情况。

标签:事务,开发人员,spring,Transactional,编程,Spring,方法
From: https://blog.csdn.net/weixin_45822714/article/details/145173865

相关文章

  • 【Solon 框架】使用国产化框架 Solon Cloud Gateway 替换 Spring Gateway
    #国产化框架Solon说明在「使用国产化框架Solon的一些开发经验」中提到,我们只是在平台的一个应用开始使用Solon框架,并非一次性的完全替换。但随着soloncloudgateway官方版本发布,替换SpringGateway也成为可能,于是开始相关的替换工作。我们的网关主要提供了统计授权和......
  • springboot环境下的rokectMQ多数据源实现
    业务原因,需要在一个项目中与多方MQ进行业务通信;步骤一,复制一份RocketMQProperties配置文件,避免与原来的冲突packagecom.heit.road.web.config;importorg.apache.rocketmq.common.topic.TopicValidator;importjava.util.HashMap;importjava.util.Map;publicclassMu......
  • SpringBoot+Redis+消息队列 技术的抢购方案【附有图文+示例代码】
    文章目录SpringBoot+Redis+消息队列技术的抢购方案13.1简单抢购13.2模拟高并下发抢购jmeter工具使用实现13.3数据安全问题加锁synchronized分布式锁13.4消息队列完成抢购【yml配置文件】【实体类】【redis工具类】【队列配置类】【controller】【队列监听器RabbitQM......
  • GaussDB技术解读——GaussDB架构介绍之全局事务管理层(GTM)关键技术方案
    GTM仅处理全局时间戳请求,64位CSN递增,几乎都是CPU++和消息收发操作。不是每次都写ETCD,而是采用定期持久化到ETCD里,每次写ETCD的CSN要加上一个backup_step(100w),一旦GTM故障,CSN从ETCD读取出来的值保证单调递增。当前GTM只完成CSN++,预估可以支持200M/s请求。GTM处理......
  • GaussDB事务存储组件
    事务存储组件云原生数据库支持透明多写,所有节点对等,每个计算节点都可以读写全部的数据页面,事务在本节点执行,没有分布式事务。每个计算节点都有Localbufferpool,采用Remotememorypool扩展计算节点的内存,在多个计算节点之间共享buffer地址,避免页面在多个计算节点之间传来传去。......
  • 创建Spring boot项目的五种方式
    1.idea直接从spring.io官网下载注意maven版本不能太高,使用3.3.9的版本2.Idea从阿里云的官网(https://start.aliyun.com)下载打开17版的idea不支持阿里云,需要使用更高版本的idea3.从spring.io官网(https://start.spring.io/)下载好,用idea打开......
  • 计算机毕业设计Springboot冰城商户管理系统 冰城商家运营管理系统基于SpringBoot的开
    计算机毕业设计Springboot冰城商户管理系统t8n7qzwr(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着数字化浪潮的席卷,传统商业模式正面临前所未有的变革。在冰城这样的特色区域,商户们在激烈的市场竞争中寻求突破,渴望借助科技力......
  • 计算机毕业设计Springboot便利店连锁经营管理系统 Spring Boot 便利店连锁管理系统 基
    计算机毕业设计Springboot便利店连锁经营管理系统95z197da(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享博客开头内容随着城市化进程的加快,便利店作为提供日常便捷服务的重要商业形态,在城市生活中扮演着越来越重要的角色。为了满......
  • 计算机毕业设计Springboot“茶文化”网站 “茶韵在线”Spring Boot 网站开发 Spring B
    计算机毕业设计Springboot“茶文化”网站2p9kxpza(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着茶文化在全球范围内的影响力日益扩大,越来越多的人渴望深入了解这一古老而深邃的文化。为了满足这一需求,我们开发了“茶文化”网......
  • 计算机毕业设计Springboot毕业学员志愿填报系统设计与实现 基于SpringBoot的毕业生志
    计算机毕业设计Springboot毕业学员志愿填报系统设计与实现f710g1r7(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着互联网技术的飞速发展,传统的毕业学员志愿填报方式已逐渐无法满足现代社会的需求。纸质填报不仅效率低下,而且容......