162 Star 1.6K Fork 509

baomidou / lock4j

 / 详情

lock4J和autoload-cache项目的aop冲突,切面切了两遍

已完成
创建于  
2021-05-28 10:45

环境

JDK版本: 1.8

SpringBoot版本: 2.4.6 lock4j-redis-template-spring-boot-starter 2.2.0

数据源starter版本: 多数据源3.3.6

描述

我项目中引用了autoload-cache-spring-boot-starter这个项目做数据切面缓存. 最近想尝试下lock4j,结果引入后,lock失败, debug后发现LockInterceptor切了两遍. 引入lock4j后,autoload-cache的注解正常使用,且debug后,autoload-cache是切了一遍. 请指教下我该如何避免aop切两遍的问题 :joy:

期望值:

实际值:

重现步骤

  • 步骤1

  • 步骤2

  • 步骤3

评论 (1)

ilaotan 创建了任务
ilaotan 关联仓库设置为baomidou/lock4j
展开全部操作日志

我注意到 https://github.com/qiujiayu/AutoLoadCache/blob/master/autoload-cache-spring-boot-starter/src/main/java/com/jarvis/cache/interceptor/CacheMethodInterceptor.java
他的代码里判断了TargetClass , lock4j加上这段,我测试了下正常.

        Class<?> cls = AopUtil.getTargetClass(invocation.getThis());
        if (!cls.equals(invocation.getThis().getClass())) {
            if (logger.isDebugEnabled()) {
                logger.debug(invocation.getThis().getClass() + "-->" + cls);
            }
            return invocation.proceed();
        }
ilaotan 通过baomidou/lock4j Pull Request !10任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Java
1
https://gitee.com/baomidou/lock4j.git
git@gitee.com:baomidou/lock4j.git
baomidou
lock4j
lock4j

搜索帮助