一个简单的解决方法是从你的方面方法中调用另一个方法来继续执行连接点。我只尝试在静态类中调用静态方法。请参阅下面的代码,以将 @InsightOperation 添加到我的所有 JSON 序列化中。
我的方面:
@Aspect
public class JSONSerializerAspect {
@Around("call(* *.JSONSerializer.serialize(..)) && args(target)")
public Object serialize(ProceedingJoinPoint joinPoint, Object target) throws Throwable {
return JSONSerializationWrapper.serialize(joinPoint, target);
}
}
它正在调用的静态类:
public class JSONSerializationWrapper {
@InsightOperation(label = "JSON_SERIALIZATION")
public static Object serialize(ProceedingJoinPoint joinPoint, Object target) throws Throwable {
return joinPoint.proceed(new Object[]{target});
}
}
我自己使用它并测试它是否有效。