按声明的返回类型划分的java Spring AOP切入点
我有以下课程和方法:
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
类型的方法。这里的execution
切入点似乎没有那么重要(因为通知是Around
类型的,执行通知时返回值还不存在)
在Spring AOP中,有没有一个简单的理由来定义一个切入点,指向连接点上声明的返回值属于某种类型的目标
(我知道我可以获取pjp.proceed
返回值并检查其instance of
,但我不想这样做)
# 1 楼答案
我已经复制了你的类,正如预期的那样,aspect only适用于getGreetingA,我无法复制你的案例,因为它们都是目标
您的示例中存在一些语法错误,下面是正确的代码: