Spring事务内方法调用自身事务 增强的三种方式

ServiceA.java文件: 查看Spring Tx的相关日志: 可以看到只创建了一个事物ServiceA.service方法的事务,但是callSelf方法却没有被事务增强; 分析原因:Spring事务生成的对象也是被Cglib或JDK代理的对象,就区别于该对象本身了, 代理的对象执行方法之前会走拦截器链,就不能同this方法. 解决方案:

1.使用Autowired注解将自身注入,然后调用注入属性的方法; 验证输出结果: 确实初始化了callSelf的事务;

2.之前Aop可以将代理对象

/***  注意:启动类需要加上  @EnableAspectJAutoProxy(exposeProxy = true)*///调用方法public void originMethod(){...code...XxxService xxxService = (XxxService) AopContext.currentProxy();xxxService.transactionalMethod(param...);
}
//带事务的方法
@Transactional(rollbackFor = Exception.class)
public void transactionalMethod(param...){code...
}

3.service注入到action中
service注入到action中 之前本人每次要获得service都是在action自己通过WebApplicationContext的getBean获得的,一直在spring中只配置到了service这一层,没有配置过action.今天闲的无聊将action也配置到了spring,原来是这么的简单. 1.添加jar包struts2-spring-plugin-xxx.jar2.在struts.xml配置文件中增加 <constant name="struts.objectFactory

Spring事务内方法调用自身事务相关推荐

  1. springboot 调用方法事物_SpringBoot 内部方法调用,事务不起作用的原因及解决办法...

    在做业务开发时,遇到了一个事务不起作用的问题.大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚.查阅资料后,问题得到解决,记录下来分享给大家. 场景 我在这里模拟一个场景 ...

  2. WCF分布式开发常见错误(13):此方法调用的事务被异步中断

    今天WCF事务编程的时候遇到这个错误:The transaction under which this method call was executing was asynchronously abo ...

  3. Spring的refresh()方法调用过程

    Spring的refresh()方法调用过程 refresh()是Spring中比较核心的方法,Spring所有的初始化都在这个方法中完成 具体代码如下 public void refresh() t ...

  4. 【每日提高之声明式事物】spring声明式事务 同一类内方法调用事务失效

    2019独角兽企业重金招聘Python工程师标准>>> [问题] Spring的声明式事务,我想就不用多介绍了吧,一句话"自从用了Spring AOP啊,事务管理真轻松啊, ...

  5. spring声明式事务 同一类内方法调用事务失效

    一 宏观说明 [问题] Spring的声明式事务,我想就不用多介绍了吧,一句话"自从用了Spring AOP啊,事务管理真轻松啊,真轻松:事务管理代码没有了,脑不酸了,手不痛了,一口气全配上 ...

  6. 内部方法调用,事务不起作用的原因及解决办法

    在做业务开发时,遇到了一个事务不起作用的问题.事情是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚.查阅资料后,问题得到解决,记录下来分享给大家. 场景 我在这里模拟一个场景,大 ...

  7. Spring 事务方法与非事务方法相互调用 @Transactional 注解失效不回滚?

    写这篇文章的初衷呢就是最近遇到了一个Spring事务的大坑.与其说是坑,还不如说是自己事务这块儿太薄弱导致的(自嘲下). 项目环境 Spring Boot 下面开始问题描述,发生的过程有点长,想直接看 ...

  8. Spring事务方法与非事务方法执行相互调用不回滚,你踩过这个坑没?

     作者:西风一任秋 blog.csdn.net/m0_38027656/article/details/84190949 写这篇文章的初衷呢就是最近遇到了一个spring事务的大坑.与其说是坑,还不如 ...

  9. Spring事务失效 -方法内部调用

    首先感谢网友的文章 Spring事务失效的2种情况 JDK动态代理给Spring事务埋下的坑 前提知识: 两个前提 1 注解使用 spring容器的事务管理注解 @org.springframewor ...

最新文章

  1. 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别
  2. vector在java中用什么_在java中使用Vector是否安全?
  3. js中当等于最小值是让代码不执行_网页中JS函数自动执行常用三种方法
  4. 在pascal环境下学习record
  5. python xlwt操作excel
  6. access与sqlserver数据转换
  7. 图像语义分割(15)-ConvCRFs:用于语义分割的卷积条件随机场
  8. 一小时做出Java实战项目——飞翔的小鸟
  9. 如何卸载mysql2008让_怎么才能把sql2008卸载干净
  10. 缺少计算机所需的介质程序,win10系统UEFi安装提示“缺少计算机所需的介质驱动程序”的图文方案...
  11. python艺术签名_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...
  12. 电商营销新思路:CPS分销推广模式
  13. IMF最新报告:E-money上位,合成版「央行数字货币」迎来曙光
  14. Vue FSC在线编译代码实时预览@vue/repl
  15. java构建树状结构工具类
  16. 流行音乐表明我们的注意力越来越短
  17. 「机器学习」天池比赛:金融风控贷款违约预测
  18. electron,win10,消息通知
  19. HTML和ftl的关系
  20. 我是怎么和SAP结缘的 - Jerry的SAP校园招聘之路

热门文章

  1. 正厚知识 | 什么是操作系统
  2. Cisco思科交换机 入门 - 恢复出厂设置的命令
  3. 小米路由器:路由器的外皮下到底是什么?
  4. Third party CSS is not saf
  5. c语言版计算坐标方位角,C语言辛普森道路测量正反算,秒杀5800计算器
  6. 第37讲-项目二-乘法口诀表
  7. linux中uart设备名是什么,linux uart设备驱动结构分析
  8. 前半生,不害怕;后半生,不后悔。
  9. C# AE 等高线建树(1)生成等高线
  10. 小米的红米战略:告别苹果走向三星