切面实现简单日志输出
/**
* serviceImpl方法日志记录
* @param point ProceedingJoinPoint
* @return Object
* @throws Throwable e
*/
@Around("execution(* com.test.demo.*.*.service.impl..*.*(..))")
public Object around(ProceedingJoinPoint point) throws Throwable {
// 类名称
String className = point.getTarget().getClass().getName();
// 方法名称
String methodName = point.getSignature().getName();
// 方法参数
Object[] methodArgs = point.getArgs();
// 打印
long start = System.currentTimeMillis();
log.info("开始执行 -> {}.{},参数:{}", className, methodName, JSONUtil.toJsonStr(methodArgs));
Object result = point.proceed();
long end = System.currentTimeMillis();
log.info("结束执行 -> {}.{},方法执行时间:{}毫秒", className, methodName, (end - start));
return result;
}