首页 > 编程语言 >解决springboot中的大事务问题:改用编程式事务

解决springboot中的大事务问题:改用编程式事务

时间:2024-11-05 20:42:13浏览次数:4  
标签:事务 springboot 编程 add adminMapper selectById 声明

1.问题:原方法中有很多不需要进行事务控制的方法,一旦使用了事务注解会导致接口超时,高并发情况下数据库连接池消耗过大,回滚时间过长等问题

    @Transactional
    public void bigTransactional(){
        adminMapper.selectById(1);
        adminMapper.selectById(2);
        adminMapper.selectById(3);
        adminMapper.selectById(4);
        adminMapper.add(new Admin());
    }

以上方法是基于声明式注解实现的事务,很明显的是前面几个select语句是不需要事务管控的。为了优化这个方法,我们可以把声明式事务改为编程式事务

    @Autowired
    private TransactionTemplate transactionTemplate;
    
    public void bigTransactional(){
        adminMapper.selectById(1);
        adminMapper.selectById(2);
        adminMapper.selectById(3);
        adminMapper.selectById(4);
        transactionTemplate.execute(status->{
            adminMapper.add(new Admin());
            return true;
        });
    }

编程式事务相比声明式事务有哪些好处

1.更细粒度的控制,上述示例就体现了这个观点,代码块级的事务处理,提高了事务的灵活度

2.性能优化,声明式事务通过AOP实现,会引入一些额外的性能开销,而编程式事务直接调用事务管理API,在高并发的场景下性能会更好

标签:事务,springboot,编程,add,adminMapper,selectById,声明
From: https://www.cnblogs.com/kun1790051360/p/18528781

相关文章

  • SpringBoot物资管理系统的设计与实现1yyr5程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着企业规模的扩大和业务复杂度的提升,物资管理成为企业运营中的关键环节。传统的手工管理模式存在信息更新滞后、流程繁琐等问题,已难......
  • SpringBoot物流管理系统f5xx1--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着全球经济一体化和电子商务的迅猛发展,物流行业在国民经济中的地位日益凸显。然而,传统的物流管理方式已难以满足现代企业对高效、快......
  • 基于SpringBoot+Vue的库存管理系统设计与实现毕设(文档+源码)
            目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:        大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的库存试管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品......
  • SpringBoot物流管理系统6h34w(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题背景随着电商行业的蓬勃发展和市场竞争的日益激烈,物流管理已成为企业运营中的关键环节。传统的人工物流管理方式已无法满足现代企业对高效......
  • 基于SpringBoot+Vue的疗养院管理系统设计与实现毕设(文档+源码)
            目录一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、源码获取:        大家好呀,我是一个混迹在java圈的码农。今天要和大家分享的是一款基于SpringBoot+Vue的疗养院管理系统,项目源码请点击文章末尾联系我哦~目前有各类成品......
  • SpringBoot网文论坛管理系统5w669(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着网络文学的兴起和读者群体的扩大,网文论坛成为作者与读者交流的重要平台。然而,现有的网文论坛普遍存在管理不便、信息杂乱等......
  • 实验3 类和对象_基础编程2
    Task1button.hpp1#pragmaonce23#include<iostream>4#include<string>56usingstd::string;7usingstd::cout;89//按钮类10classButton{11public:12Button(conststring&text);13stringget_label()const;......
  • Vue+Springboot 前后端分离项目如何部署?
    本文转载自:https://fangcaicoding.cn/course/11/58大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据量级的业务系统的架构和核心编码。“学编程,一定要系统化”是我一直坚持......
  • 实验3 类和对象_基础编程2
    实验一:代码:button.hpp:1#pragmaonce23#include<iostream>4#include<string>56usingstd::string;7usingstd::cout;89//按钮类10classButton{11public:12Button(conststring&text);13stringget_label()con......
  • springboot+vue朝阳小区防疫工作管理平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球疫情的持续演变,社区作为疫情防控的第一线,其管理效率与精准度直接关系到疫情的传播控制与社会秩序的稳定。朝阳小区作为一个典型的大型居民区,人员流动频繁,防疫工作面临诸多挑战。传统的防疫管理方式,如人工登记、电话随访等,不仅......