1:定义注解类
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodLogger {
}
欢迎微信扫小程序码进入共同学习成长
2.定义切面处理类
@Component
@Aspect
public class MethodLoggerAspect {
@Around("@annotation(com.*.annotation.MethodLogger)")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
Signature signature = pjp.getSignature();
String methodName = signature.getName();
UUID uuid = UUID.randomUUID();
Object[] args = pjp.getArgs();
String info = JSON.toJSONString(args);
//方法执行前处理
Object obj = pjp.proceed();
String resultStr = JSON.toJSONString(obj);
//方法执行后处理
return obj;
}
}
3.方法使用切面拦截
@MethodLogger
public Object myMethod (long userId, String bizCode){
return null;
}