在方面中获取目标对象,并对目标对象调用另一个方法



我想在方法切入点上写一个方面,在方面中,我想使用调用切入点方法的对象调用另一个方法。

类似这样的东西:


@Pointcut("@annotation(com.mypackage.Notify(getC))")
public void notifyPointCut() {
}
@AfterReturning(value = "notifyPointCut(getC)", argNames = "joinPoint") 
public void notifyChange (JoinPoint joinPoint) {
  Object targetObject  = joinPoint.getTarget();
  C cField = targetObject.invokeMethod("getC");
  notifier.sendUpdate(cField);
}

我想获得调用joinPoint方法的对象,并对该对象进行另一个方法调用(在注释中传递的方法名称)

我的用例是获取对象的一些字段,这些字段是通过joinPoint方法创建或更新的。一旦joinPoint方法返回,我希望在方面中获取这些字段,并发送关于字段值的通知。

我不确定我是否过于复杂的方面用法,因为我在搜索中找不到这样的用法。

我找到了如何调用该方法。我需要获取方法并调用它,然后就不需要为类进行强制转换。


Object targetObject  = joinPoint.getTarget();
Method m = targetObject.getMethod("getC");
m.invoke(targetObject);

最新更新