0

我需要拦截 writer.write(myObj) 类型的所有方法,并且当且仅当 myObj 包含使用 @BeforeWrite 注释的方法时,才执行此方法。

我有点困惑,因为我可以拦截编写器上的方法调用,但我不知道如何提供一个切入点来查看是否有一个用@BeforeWriter 注释的方法,这看起来类似于@PostLoad 注释的可能性在 JPA 中处理...

4

1 回答 1

1

在您的拦截器处理方法中,您有 type 的参数ProceedingJoinPoint,它有 method getArgs()。您可以检查您的参数 ( myObj) 方法反射并决定是否继续。示例(call属于类型ProceedingJoinPoint):

boolean proceed = false;
for (Method method : call.getArgs()[0].getClass().getMethods()) {
    if (method.isAnnotationPresent(BeforeWriter.class)) {
        proceed = true;
        break;
    }
}
于 2012-04-04T09:15:52.880 回答