springboot事务手动回滚报错问题及解决

 更新时间:2026年05月17日 10:18:00   作者:bekote  
文章描述了在使用Spring框架时遇到的异常回滚问题,由于外部事务未正确响应内部手动标记的回滚操作导致,分析发现是JDK动态代理引起的,并尝试通过配置更改代理方式解决未果,最终通过更换Shiro整合包解决了问题

springboot事务手动回滚报错

捕捉异常之后手动标记回滚事务

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

没有嵌套事务,还是报

Transaction rolled back because it has been marked as rollback-only异常错误

查看错误堆栈

service调用的方法外层还套有一层事务,方法内部手动标记回滚,没有抛出异常,外部方法还是会提交事务导致报错

JDK动态代理导致的

但是Spring2.x默认使用cglib动态代理,更改配置spring.aop.proxy-target-class=true也不起作用

最后对比过往项目发现整合shiro时引入包

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring-boot-starter</artifactId>
</dependency>

改用shiro-spring包可以解决

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
</dependency>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决mapper自动装配识别不了,Could not autowire.No beans of‘UserMapper‘type found

    解决mapper自动装配识别不了,Could not autowire.No beans&

    文章介绍了在使用MyBatisX插件和MybatisPlus自动生成代码后,如何解决Spring Boot项目中自动注入`UserMapper`时报错的问题,主要方法包括在主配置类或启动类上添加`@MapperScan`注解,指定Mapper文件夹所在的包路径,以及在Mapper类上添加`@Repository`注解
    2024-11-11
  • 使用Jackson反序列化遇到的问题及解决

    使用Jackson反序列化遇到的问题及解决

    这篇文章主要介绍了使用Jackson反序列化遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 一文教你如何通过三级缓存解决Spring循环依赖

    一文教你如何通过三级缓存解决Spring循环依赖

    这篇文章主要介绍了如何通过三级缓存解决 Spring 循环依赖,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Java实现MD5加密算法方法例子

    Java实现MD5加密算法方法例子

    这篇文章主要给大家介绍了关于Java实现MD5加密算法方法的相关资料,MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上,需要的朋友可以参考下
    2023-10-10
  • 浅谈java异常处理(父子异常的处理)

    浅谈java异常处理(父子异常的处理)

    下面小编就为大家带来一篇浅谈java异常处理(父子异常的处理)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • SpringBoot框架内使用Java调用讯飞星火api完整步骤

    SpringBoot框架内使用Java调用讯飞星火api完整步骤

    近年来人工智能技术已经成为了各行各业中不可或缺的一部分,讯飞星火认知是讯飞科技推出的AI开放平台,为开发者提供了丰富的人工智能技术接口和服务,这篇文章主要介绍了SpringBoot框架内使用Java调用讯飞星火api的相关资料,需要的朋友可以参考下
    2025-05-05
  • java Array和Arrays的区别总结

    java Array和Arrays的区别总结

    在本篇内容里小编给大家整理的是一篇关于java Array和Arrays的区别总结内容,有需要的朋友们可以学习下。
    2021-03-03
  • Spring AOP中定义切点的实现方法示例

    Spring AOP中定义切点的实现方法示例

    这篇文章主要介绍了Spring AOP中定义切点的实现方法,结合实例形式分析了spring面向切面AOP定义切点的具体步骤、实现方法与相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • Spring security实现权限管理示例

    Spring security实现权限管理示例

    这篇文章主要介绍了Spring security实现权限管理示例,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • SpringBoot深入了解日志的使用

    SpringBoot深入了解日志的使用

    Spring Boot默认使用SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用SLF4J+Logback进行日志输出
    2022-07-07

最新评论