美文网首页
AOP失效问题

AOP失效问题

作者: betterFighter | 来源:发表于2018-12-23 14:31 被阅读0次

AOP失效问题

前言

    AOP我们知道,可以做成一个切面,我们可以把类里一些公共的行为放到AOP中。例如在AOP里面打印一些请求接口时的请求参数,公共参数。在AOP里定义线程上下文,把必要的参数存储在线程上下文中。然而,如果AOP失效了呢?

问题描述

    近期遇到一个AOP失效问题。排查过程略微艰辛。在代码的接口实现层都会有一个AOP注解,保证每个调用的接口都能够先进入AOP,然后再进入逻辑代码。但是日志里发现某个接口实现类里的方法都没有走AOP的代码。没有打印请求参数日志。逻辑代码中也取不到线程上下文的参数的值。但是其他实现类完全正常。拉取代码用jd工具反编译,报//INTERNAL ERROR//错误。

问题排查

     也曾从网上查过AOP失效问题,也查过反编译报错问题。均无合适答案。因此去拉取了下这个实现类未改动前的代码,反编译。居然OK。整理此次实现类新加4个方法实现。一个个注释,本地编译然后反编译,定位到其中一个方法。但是查看逻辑,并没有什么问题。注意到这个类里有一个唯一的不同在于存在lambda表达式写法。但是lambda和AOP能有啥关系。不死心,遂注释。再次反编译,居然OK了。后续将lambda改回1.7方式。AOP失效也已解决。

问题原因

    排查后得知,pom文件中使用的org.aspectj.aspectjrt的版本为1.6.9。这个版本是不支持lambda表达式的。因此代码里使用了lambda表达式,也会影响到AOP的运行。遂升版本。问题解决。

反思

    遇到问题,不能被问题限死。AOP失效,不代表一定都是AOP本身问题。需要学会跳脱出来。换个思路。遇到之前没碰到过的问题,大不了一个一个耐心去排除。

相关文章

  • AOP失效问题

    AOP失效问题 前言 AOP我们知道,可以做成一个切面,我们可以把类里一些公共的行为放到AOP中。例如在AOP里...

  • kotlin aop 失效的问题

    当我们从java的aop转换到kotlin的aop时,会出现失效的问题。 java 的 Controller类 @...

  • AOP在Service失效问题

    先看下这个问题的背景:假设有一个spring应用,开发人员希望自定义一个注解@Log,可以加到指定的方法上,实现自...

  • aop

    使用: spring aop使用简单示例 开启单个bean的代理,ProxyFactoryBean aop失效 a...

  • 内部调用引起Spring声明式事务@Transactional失

    失效的原因 Spring声明式事务是基于AOP生成的代理类来实现的,而AOP无法拦截内部调用,导致事务失效。 解决...

  • Spring事务什么时候会失效

    Spring事务什么时候会失效? Spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不...

  • Spring AOP内部调用失效问题

    Spring AOP基本原理 Spring AOP是基于动态代理机制实现的,通过动态代理机制生成目标对象的代理对象...

  • Spring专题: 4. AOP失效的场景与原理

    问题: 同一个类中的方法互相调用,被调用方aop失效,比如下列代码,serviceA中调了serviceB,此时,...

  • spring 事务处理中,同一个类中:A方法(无事务)调B方法(

    此时,调用A方法,B里的事务将不生效 这个问题,表面上是事务声明失效的问题,实质上很可能是Spring的AOP机制...

  • AOP失效了...分析

    技术来自于需求组内在做性能测试,要知道每个方法调用时候,外层方法以及内部调用的每个子方法的耗时时长,第一时间呢就想...

网友评论

      本文标题:AOP失效问题

      本文链接:https://www.haomeiwen.com/subject/ibknkqtx.html