我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 整体失效 >

Spring AOP之同一个对象方法内部自调用导致事务失效问题自调用失

归档日期:06-28       文本归类:整体失效      文章编辑:爱尚语录

  对于像我这种喜欢滥用AOP的程序员,遇到坑也是习惯了,不仅仅是事务,其实只要脱离了Spring容器管理的所有对象,对于SpringAOP的注解都会失效,因为他们不是Spring容器的代理类,SpringAOP,就切入不了

  简单来说,如果实现了某个接口,那么Spring就选择JDK代理(不一定),如果没有,那么就选择CGLIB代理,说起来简单,Spring还会闹脾气,不代理呢

  一直以来比较多的情况是在Controller 调用Service 的方法,把事务直接在Service的方法上,妥妥的没问题,事务正常执行

  考虑以下问题: 同对象的方法B 调用自己的方法A,这里的事务将会失效(严格上来说,只要对方法A使用注解AOP均会失效),原因是因为这里的this.调用的并不是Spring的代理对象

  第二步(需要保证Spring对这个bean创建了代理对象,基本上涉及到Aop的方法的类,都会创建代理对象) 可以用以下代码判断

  springAOP中自身方法调用无法应用代理解决办法AopContext博文来自:彤哥读源码

  spring中使用this调用事务失效的原因spring中在一个拥有事务的方法A中调用另一个会挂起事务并创建新事务的方法B,如果使用this调用这个方法B,此时方法B抛出了一个一场,此时的方法B的事务...博文来自:追风

  Spring声明式事务实现原理起因本人之前使用Spring事务时遇到两种场景。同一个class没有事务的A方法调用含有事务的B方法发现事务不生效,同一个class有事务的A方法调用含有事务的B方法(传...博文来自:yyoc97的专栏

  转:前些日子一朋友在需要在目标对象中进行自我调用,且需要实施相应的事务定义,且网上的一种通过BeanPostProcessor的解决...博文来自:学习笔记

  使用AOP 代理后的方法调用执行流程,如图所示也就是说我们首先调用的是AOP代理对象而不是目标对象,首先执行事务切面,事务切面内部通过TransactionInterceptor环绕增强进行事务的增强...博文来自:Erica_1230的专栏

  1、问题概述在使用SpringAOP时,或多或少会碰到一些方法无法被增强的问题,有时同一个类里面的方法有的可以被增强,有的却无法被增强。要分析原因,首先要从SpringAOP的实现机制入手。Aop底层...博文来自:实践是最好的方法

  遇到过方法A内调用Aop修饰的方法B失效、方法A内调用@Async修饰的方法C失效,百度谷歌都没看到一个好的解决,这里分享一个我的解决方案。为什么失效这个百度上很多解答,分析的也很好,其实就是Spri...博文来自:大树的学习之路

  扯一下沟通本来这篇文章是想写关于职场上的沟通的,尽管我也是一个初入职场的小白。但是发现时间不太够,只好作罢,后面再补上吧。关于沟通,我总结起来就是沟通渠道要畅通,沟通要主动,沟通要高效&q...博文来自:li12412414的博客

  解决方法1.在启动类上加上如下注解2.使用如下方式调用方法博文来自:sly1311220942的博客

  前几天在做项目的时候同事说,在使用AOP进行拦截的时候发现有些方法有时候能输出拦截的日志有时候不输出拦截的日志。发现在单独调用这些方法的时候是有日志输出,在被同一个类中的方法调用的时候没有日志输出。我...博文来自:努力改变人生!

  [b]情况1:[/b]在声明式事务和注解事务并存的情况下会出现注解事务失效的问题处理方法如下:方法1:[code=java] [/code]在配置中加上参数order=&...博文来自:七月

  关于使用Spring声明式事务时,在类的内部方法互相调用时,Spring无法拦截内部方法调用,导致事务不起作用的问题研究...博文

  一.SpringAop对于目标类的方法(被代理过得)的内部调用(其他方法在内中调用被代理的方法)无效1.原因:因为内部调用使用的this调用,也就是使用的目标内的对象调用的,不是使用Spring动态生...博文来自:Tiglle的博客

  小伙伴可能在项目中遇到这样的问题,比如serviceA中有两个methodA()和methodB()方法(A,B方法是通过接口来实现的,这一点很重要!),其中methodA方法没有事务,methodB...博文来自:healer的博客

  spring使用Aop事务失效问题问题:项目中碰到在同一个类中(JDK动态代理),非事务方法调用一个有事务方法,会使得整个事务失效问题重现利用mysql中ReplicationDriver的特性:如果...博文来自:面朝大海,春暖花开

  service有A、B两个方法,A方法无AOP,B方法有AOP。在A方法中调用了B方法。问题1:B方法AOP会不会生效?为什么? 问题2:如果不会,怎么解决?涉及的知识点:事务传播特性,嵌套事务同一个...博文来自:周先生丶的博客

  在我们使用spring的时候,往往会遇到在本类被aop代理的时候,访问本类其他被代理的方法,发现并没有被代理。那么我们应该如何实现呢xml配置...博文来自:wuhulala的休息室

  在开发基于Spring的应用的过程中碰到了一个让我困惑了好久的问题,我在一个Service类的doSomething1()方法中通过this.doSomething2();语句调用了同一个类中的 do...博文来自:江城宴的博客

  原文地址,转载请注明出处:王赛超前言今天在写代码的时候,遇见了一个非常奇怪的问题...博文来自:这个名字想了很久

  转自:事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务。结果造...博文来自:xj8844的博客

  1.问题:场景一:通过spring注入对象方式调用方法时,当调用的调用的第一个方法methodA没有事物注解。那么通过methodA调用同一个类中的methodB,methodB方法上加了事物注解,m...博文来自:tensorzhl的专栏

  在使用Spring的注解事务时候,我们发现内部方法声明的事务不起作用,而是决定于外部方法注解的事务。到底是真不起作用,还是我们我们Spring的事务注解机制理解错了,导致误用了。下面我们看两个例子:测...博文来自:hsgao_water的博客

  今天遇到了SpringBoot里面@Autowired注解失败的的问题,在网上也搜了下,有两种情况会出现这个问题,特此记录下来,以后好记住这个教训。*第一种情况Spring没扫描到包,SpringBo...博文来自:的博客

  先谈问题我实际遇到的问题就是,我在一个service中,将此service的对象通过this传递给子线程,子线程通过传递过来的对象,调用对象里的方法,此时没有事物控制效果。原因浅谈首先要区分AOP代理...博文来自:Zealot_Cat的博客

  如果你只是想使用一个轻量级的缓存方案,那么可以尝试使用Springcache方案。但是,在使用注解的时候,要注意,如果类A的方法f()被标注了@Cacheable注解,...博文来自:totally123的专栏

  前两天面试的时候,面试官问了一个问题,大概意思就是一个类有两个成员方法A和B,两者都加了事务处理注解,定义了事务传播级别为REQUIRE_NEW,问A方法内部直接调用B方法时能否触发事务处理机制。答案...博文来自:懋懋之为

  [问题]      Spring的声明式事务,我想就不用多介绍了吧,一句话“自从用了SpringAOP啊,事务管理真轻松啊,真轻松;事务管理代码没有了,脑不酸了,手不痛了,一口气全配上了事务;轻量级,...博文来自:喵星人

  现象描述:假设有一个service,其中有AB两个方法,AB都被aop托管,且A中调用了B方法,这时请求方法A的时候只会触发A的aop逻辑而不会触发B的aop逻辑。publicinterfaceUse...博文来自:nieyanshun_me的专栏

  在使用dubbo2.8.4版本的时候,项目中有使用spring的声明式事务,dubbo的服务暴露使用了注解,发现服务一直没被监测到,后面查看源码debug,才发现dubbo有个bug,需要改动源码来修...博文来自:奕辰杰的博客

  相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是: ⑴ 找出算法...博文来自:杨威的博客

  本帖只谈技术实现,首先我们自己来编译一个比特币客户端吧, 技术讨论,欢迎大家入伙(注明:csdn)。...博文来自:开心乐源的专栏

  帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能。首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer...博文来自:kongwei521的专栏

  扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自:Lynn_Blog

  mybatis简单小巧易于上手,方便浏览修改sql语句博文来自:努力+坚持,而且还很年轻

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:Websites

  Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。   在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 (...博文来自:朱小厮的博客

  我们在做项目的时候有时候需要给图片添加水印,水寒今天就遇到了这样的问题,所以搞了一个工具类,贴出来大家直接调用就行。/** * 图片工具类 * @author 水寒 * 欢迎访问水寒的个人博客:...博文来自:水寒

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  1. 规则引擎面临的问题:业务规则的实现大部分是由开发人员来实现的 业务规则需要业务分析人员能够阅读和理解 业务规则的可读性和用户的友好性都不太好2. DSL领域特殊语言DSL == Domain...博文来自:哎幽的成长

  nginx 是个轻量级的Web服务器,比Apache不差博文来自:老徐2014

  若是研究区在中国,则在地理空间数据云有中国区合成好的数据,直接下载用即可。数据格式为TIF。坐标为WGS84,不用再转换投影。下载网址为:博文来自:hengcall的博客

  f45056231p:因为像http1.0的客户端,是有些请求connection头中有keep-alive可选头部字段,而一些盲中继代理会不理解这个头部字段,会毫无处理的把它继续转发到下游服务器,而服务器就会认为是请求需要开启持续连接,从而答应请求开启持续连接,不会关闭这条连接,当服务器把响应返回时,客户端收到响应,并可能在这条连接上继续发送下一个请求,而盲中继代理不理解keep-alive,会一直等待连接的关闭,并且认为这条连接上不会再有请求发送过来,从而忽视转发这条请求,造成客户端一只转圈,一直等到这条持久连接的超时

本文链接:http://hellohailey.com/zhengtishixiao/194.html