如何在@Around方面获得execution()切入点返回类型?

时间:2013-03-19 12:36:04

标签: java aop aspectj spring-aop

我正在为系统的方法输入验证编写一些方面:

  1. 每个方法的返回对象都派生自一个具有属性的公共基类,它包含返回码。
  2. Pointcut定义拦截哪个包
  3. 编写方面来验证方法的输入。如果验证成功,则执行()以执行方法。如果失败,请设置方法返回对象的返回码属性并直接返回。
  4. 我的问题是:除了基类之外,如何获得真正的返回对象类?我只能知道我应该返回的基类,而不是真正的类。我在ProceedingJointPoint中找不到任何内容,getSignature()只有类名...

1 个答案:

答案 0 :(得分:1)

要获取方法的返回类型,您必须将ProceedingJoinPoint的签名强制转换为MethodSignature(http://www.eclipse.org/aspectj/doc/next/runtime-api/org/aspectj/lang/reflect/MethodSignature.html)。这将为您提供.getReturnType() - 方法,它可以为您提供您想要的内容。