加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring声明返回类型的AOP切入点

发布时间:2020-12-15 02:19:15 所属栏目:Java 来源:网络整理
导读:我有以下类和方法: public class Hello { public String getGreetingA() { return "hello"; } public boolean getGreetingB() { return false; }} 并且以下方面: @Aspectpublic class HelloAspect { @Pointcut("execution (public String Hello.*(..)") pu
我有以下类和方法:

public class Hello {
    public String getGreetingA() {
        return "hello";
    }
    public boolean getGreetingB() {
        return false;
    }
}

并且以下方面:

@Aspect
public class HelloAspect {

    @Pointcut("execution (public String Hello.*(..)")
    public void pointcut() {}

    @Around("pointcut")
    public Object advice(ProceedingJoinPoint pjp) {
        // do something...
        Object result = pjp.proceed;
        // do something...
        return result;
    }
}

目前,对两个Hello类方法都执行了建议.
我希望方面只针对返回String类型的方法.似乎执行切入点在这里并不相关(因为建议属于Around类型,并且在执行建议时返回值尚不存在).

是否有一个简单的原因在Spring AOP中定义一个切入点来定位Joinpoints,它们声明的返回值是某种类型的?

(我知道我可以获得pjp.proceed返回值并检查其实例,但我想避免这样做)

解决方法

我已经复制了你的课程,正如预期的那样,这个方面只适用于getGreetingA,我无法重现你的情况,两者都是针对性的

您的示例中存在一些语法错误,这里是正确的代码:

@Pointcut("execution (public String Hello.*(..))")
 @Around("pointcut()")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读