我有以下课程和方法:
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中有一个简单的原因来定义一个切入点以在Joinpoints上定位它们声明的返回值是否为某种类型?
(我知道我可以获得pjp.proceed
返回值并检查其instance of
,但我想避免这样做)
答案 0 :(得分:0)
我已经复制了你的课程,正如预期的那样,这个方面只适用于getGreetingA,我不能重现你们两个都被定位的情况
您的示例中存在一些语法错误,这里是正确的代码:
@Pointcut("execution (public String Hello.*(..))")
@Around("pointcut()")