首页 > 其他分享 >SpringBoot 事务失效常见的原因

SpringBoot 事务失效常见的原因

时间:2024-04-16 20:58:10浏览次数:26  
标签:事务 SpringBoot 新建 ThreadLocal 线程 失效 原因

low一点的原因:

1. 非public方法

2. 异常被处理了(try catch)

3. bean没被Spring管理,比如没加Component注解

4. 数据库不支持(比如MyISAM)

 

高大上一点的原因:

5. 内部方法调用,可以注入本实例的代理类,通过代理类来调用

6. 抛出的是非RuntimeException,可以这么解决(@Transactional(rollbackFor = TimeoutException.class))

 

 

另外,事务方法内进行异步操作(开启线程执行代码)很可能会出问题,如果事务隔离级别、传播行为、提交时机设置不当,就很容易出问题,应该尽量避免。

 

另外,事务传播行为常用的一般就两种:

融入:当前线程已经有事务了,就加入,没有,则新建,连接信息和事务信息是存在ThreadLocal里面的

新建:挂起当前的事务(存在ThreadLocal),新建新的事务,等提交以后,再把老的事务信息拿出来

标签:事务,SpringBoot,新建,ThreadLocal,线程,失效,原因
From: https://www.cnblogs.com/huainanyin/p/18094585

相关文章

  • 初次使用SpringBoot3遇到的一些问题
    打开网址https://start.spring.io/  选择版本依赖等信息 本机环境原先装了个jdk8,由于SpringBoot3最低支持jdk17,所以本机环境上又装了个jdk17   https://www.oracle.com/java/technologies/downloads/#java17出于怀旧,jdk8还保留着,并且环境变量还是jdk8,只是在idea里吧......
  • 30.swagger springboot中简单整理
    类似postman接口在线测试API接口哈哈我也不太懂接口还没前后端整合过呢也就是注释你的各种接口吧可有可无先说依赖问题这个是swagger2的依赖当然出现问题了已经更新到了swagger3了参考:https://cloud.tencent.com/developer/article/1936862https://mvnrepos......
  • SpringBoot+SpringSecurity6+Jwt最小化代码
    SpringBoot+SpringSecurity6+Jwt最小化代码[toc]零、参考资料https://blog.csdn.net/m0_71273766/article/details/132942056一、快速开始1.1、引入依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0&quo......
  • RocketMQ集成SpringBoot
    踩了3天的坑,发现使用rocketMQTemplte消费者一直注册不上,发现是springboot版本问题1.版本选择经过不严格测试发现rocketmq-spring-boot-starter2.3.0支持springboot3以上rocketmq-spring-boot-starter2.2.x只能使用3以下,高版本会导致消费者注册不上的问题2.application.y......
  • 80、SpringBoot3 SpringSecurity Mybatisplus最新版 整合 实现登入权限控制
    1、导入pom依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apac......
  • SpringBoot+MybatisPlus 增删改查学习第三章 (C#转JAVA)
    packagecom.example.demo;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.example.demo.entity.Person;importcom.example.demo.mapper.PersonMapper;importcom.example.demo.service.PersonService;importorg.junit.jupiter.api.Test;i......
  • 面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)
    面试官:一个SpringBoot项目能处理多少请求?(小心有坑) 你好呀,我是歪歪。这篇文章带大家盘一个读者遇到的面试题哈。根据读者转述,面试官的原问题就是:一个SpringBoot项目能同时处理多少请求?不知道你听到这个问题之后的第一反应是什么。我大概知道他要问的是哪个方向,但......
  • Mybatis-Plus 使用IPage分页失效问题处理
    问题在mybatis-plus中使用IPage作为分页功能实现,请求发现并没有实现分页功能。部分代码##controller@PostMapping("/getCollege")@ApiOperation("查询学院信息")publicCommonResult<IPage<ZgdCollegeVo>>getCollege(@RequestBodyZgdCollegeBozgdColle......
  • MySQL锁、事务和索引
    并发事务的控制方式是MVCC和行锁按范围分:表级锁、页锁、行级锁(锁一行或者多行)(记录索、间隙锁、临键锁(可重复读默认用这个做行锁,除非是主键和唯一索引会使用记录索))按功能分:读锁(S)、写锁(X)意向锁是表级锁,分为意向共享锁、意向排他锁,用于协调表锁和行锁的关系,事务想要在某些行上加共......
  • springboot多数据源配置
    由于我们系统旧环境没有用springboot自带的多数据源功能,使用了自己配置的多数据源。添加自定义数据源注解@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public@interfaceDynDatasource{Modulevalue()defaultModule.DEF;}注解......