skywalking和JPA冲突问题解决

1 篇文章 0 订阅
1 篇文章 0 订阅

冲突原因:

不加skywalking的时候,JPA接口的代理方式为JDK动态代理,加入skywalking后,JPA的接口代理方式变成了CGLIB。如下图所示为判断JPA接口代理方式的逻辑:

之所以加入skywalking后,代理方式变成CGLIB的原因是,skywalking对hasNoUserSuppliedProxyInterfaces方法进来了重新定义。代理的逻辑代码如下图,第二张图是具体的重定义实现。

解决方式:

我的解决方式就是在afterMethod中增加判断,如果是JPA的接口则返回false,如下图所示

重新打包,然后将jar包放到skywalking下的plugins目录下即可。

附上打包后的下载链接:https://download.csdn.net/download/sj1231984/17231447

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值