spring 事务机制网上的案例很多,关于事务 不能回滚也有很多的类型,不同的问题有不同的处理方案,本篇博客主要介绍两种事务不能回滚的问题解决方案:

问题一:

在同一个对象中有两个方法,分别未方法A,方法B(添加了事务),在方法A中调用方法B,出现了事务不能回滚的情况:

    /*** 方法A*/public void methodA(){System.out.println("I an methodA ...");}/*** 方法B*/@Transactionalpublic void methodB(){System.out.println("I an methodB ...");//手动回滚事务TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}​

此时报异常

org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope

解决方案:新建一个类,将方法B放在新建的类中,定义格式不变,然后在原来的类中调用即可,这是因为spring的事务依赖的是AOP,spring在初始化bean 是生成了一个代理类,在第一个方法中有代理类的存在,调用本类其他方法是是使用的对象本身而不是代理类,故而事务不能回滚。

问题二:

springboot项目中不知因为什么原因有些service未生成代理类,在启动时:

is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying

虽然此条日志信息时info级别的不影响正常的运行。可是出现此问题的类中service 就是不回滚,不知道此问题的原因,有知道的烦请告知一二,万分感谢。

解决方案:在此类中添加注解

@Scope(proxyMode = ScopedProxyMode.INTERFACES)

此注解意思是生成一个jdk代理类,从而解决此问题

spring boot 项目 事务 不能回滚 代理(not eligible for auto-proxying)相关推荐

  1. spring@Transactional注解事务不回滚不起作用无效的问题处理

    这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性 先来了解一下@Transactio ...

  2. spring + hibernate + mysql 事务不回滚

    首先声明,这个问题涉及到的数据库是MySQL.这是个很奇怪的问题,事务怎么会不回滚呢?实际上这是个愚蠢的问题,是经验不足导致的,越是奇怪的问题解决起来就越容易.不回滚的根本原因不在Hibernate, ...

  3. java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案

    spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxx ...

  4. 每日一博 - 常见的Spring事务失效事务不回滚案例集锦

    文章目录 事务不生效 方法内部调用 修复方法一 : [新加一个Service方法] 修复方法二:[在该Service类中注入自己] 修复方法三:[通过AopContent类]<---- 推荐 访 ...

  5. spring 事务应用误区总结:那些导致事务不回滚的坑

    基于JDBC的 Spring事务在项目中常用来保证数据的一致性, 想要正确的使用,绝不是加一个@Transactional那么简单.最近团队内在排查事务不生效的问题时,就遇到了一个很典型的错误应用的场 ...

  6. springboot 事务手动回滚_Spring Boot中的事务是如何实现的

    1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...

  7. JAVA Spring 事务管理事务不回滚问题

    Spring事务管理事务不回滚 dao层: @Repository public class UserDaoImpl implements UserDao { @Autowired private J ...

  8. Spring事务异常回滚,try catch 捕获异常不回滚

    Spring事务异常回滚,try catch 捕获异常不回滚 参考文章: (1)Spring事务异常回滚,try catch 捕获异常不回滚 (2)https://www.cnblogs.com/GH ...

  9. Spring事务异常回滚,捕获异常不抛出就不会回滚

    Spring事务异常回滚,捕获异常不抛出就不会回滚 参考文章: (1)Spring事务异常回滚,捕获异常不抛出就不会回滚 (2)https://www.cnblogs.com/chen-lhx/p/6 ...

最新文章

  1. LeetCode算法题-Nth Digit(Java实现)
  2. 百叶窗设计原理 html5,Html5百叶窗效果的示例代码_html5教程技巧
  3. SpringBoot的配置文件加载顺序和使用方式
  4. Python函数学习
  5. 数据结构之顺序表和有序表查找其实现
  6. python中str是什么_Python中str字符串的功能介绍
  7. php 调试常用函数,PHP几个常用的去空、分组、调试数组函数
  8. makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
  9. PyCharm2018 汉化激活
  10. Shell脚本应用之服务启动脚本
  11. 零基础入门机器学习——声音识别——打卡Task1
  12. 毕业设计 STM32单片机的空气质量检测系统
  13. python的jira库操作
  14. 一个屌丝程序猿的人生(二十七)
  15. gnuplot绘制xxx.plt文件生成图形
  16. c语言定义禁止优化变量,c语言防止优化
  17. 计算机键盘感叹号在哪里,键盘上感叹号是哪个键
  18. 【学习记录】图片局部放大
  19. MacBook 卸载ESET Endpoint Antivirus
  20. IT30: 软件团队的工作职责与岗位要求

热门文章

  1. C# ManualResetEventSlim类
  2. Python实现去除图片中的数字水印
  3. Python练手项目:玩转魔方
  4. Tekton笔记(三)之catalog kaniko
  5. wish平台怎么样?wish跨境电商好做吗?
  6. 深入拆解类加载器,这样的姿势你还不懂吗?
  7. 数据挖掘之时间序列模型(最全流程分析)
  8. 【Http】HTTP方法的安全性和幂等性
  9. Qt图形化界面—迷宫最短路径问题
  10. java读取word文档的复杂表格_poi读取word表格 java POI 如何读取word的表格中的表格...