diff --git a/src/main/java/com/bao/dating/aspect/LoggingAspect.java b/src/main/java/com/bao/dating/aspect/LoggingAspect.java new file mode 100644 index 0000000..e104d61 --- /dev/null +++ b/src/main/java/com/bao/dating/aspect/LoggingAspect.java @@ -0,0 +1,48 @@ +package com.bao.dating.aspect; + + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.*; +import org.springframework.stereotype.Component; + +/** + * 日志切面 + * @author KilLze + */ +@Aspect +@Component +@Slf4j +public class LoggingAspect { + @Pointcut("execution(* com.bao.dating.service.impl.*.*(..))") + private void pt(){} + + /** + * 方法执行前执行 + * @param joinPoint 方法参数 + */ + @Before("pt()") + public void logBeforeMethod(JoinPoint joinPoint){ + // 获取方法名 + String methodName = joinPoint.getSignature().getName(); + // 获取参数 + Object[] args = joinPoint.getArgs(); + log.info("方法 {} 开始执行,参数: {}", methodName, args); + } + + /** + * 方法执行成功后执行 + * @param joinPoint 方法参数 + */ + @AfterReturning(pointcut = "pt()", returning = "result") + public void logAfterMethod(JoinPoint joinPoint, Object result){ + String methodName = joinPoint.getSignature().getName(); + log.info("方法 {} 执行成功,返回值: {}", methodName, result); + } + + @AfterThrowing(pointcut = "pt()", throwing = "exception") + public void logAfterThrowing(JoinPoint joinPoint, Exception exception){ + String methodName = joinPoint.getSignature().getName(); + log.error("方法 {} 执行异常", methodName, exception); + } +} diff --git a/src/main/java/com/bao/dating/aspect/OperateLogAspect.java b/src/main/java/com/bao/dating/aspect/OperateLogAspect.java index 505457f..440f141 100644 --- a/src/main/java/com/bao/dating/aspect/OperateLogAspect.java +++ b/src/main/java/com/bao/dating/aspect/OperateLogAspect.java @@ -8,15 +8,17 @@ import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.lang.reflect.Array; -import java.lang.reflect.Method; + import java.time.LocalDateTime; import java.util.Arrays; +/** + * 记录操作日志 + * @author KilLze + */ @Slf4j @Aspect @Component diff --git a/src/main/java/com/bao/dating/aspect/RecordTimeAspect.java b/src/main/java/com/bao/dating/aspect/RecordTimeAspect.java deleted file mode 100644 index 993c2f8..0000000 --- a/src/main/java/com/bao/dating/aspect/RecordTimeAspect.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.bao.dating.aspect; - -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.springframework.stereotype.Component; - -/** - * 记录方法运行耗时 - * @author KilLze - */ -@Slf4j -@Aspect -@Component -public class RecordTimeAspect { - @Around("execution(* com.bao.dating.service.impl.*.*(..))") - public Object recordTime(ProceedingJoinPoint pjp) throws Throwable { - //1. 记录方法运行的开始时间 - long begin = System.currentTimeMillis(); - - //2. 执行原始的方法 - Object result = pjp.proceed(); - - //3. 记录方法运行的结束时间, 记录耗时 - long end = System.currentTimeMillis(); - log.info("方法 {} 执行耗时: {}ms", pjp.getSignature() ,end-begin); - return result; - } - -} diff --git a/src/main/java/com/bao/dating/interceptor/TokenInterceptor.java b/src/main/java/com/bao/dating/interceptor/TokenInterceptor.java index 69373d7..d5f0780 100644 --- a/src/main/java/com/bao/dating/interceptor/TokenInterceptor.java +++ b/src/main/java/com/bao/dating/interceptor/TokenInterceptor.java @@ -52,6 +52,7 @@ public class TokenInterceptor implements HandlerInterceptor { if (!JwtUtil.validateToken(token)) { log.error("Token无效或已过期"); response.setStatus(401); + response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("Token无效或已过期"); return false; } @@ -68,6 +69,7 @@ public class TokenInterceptor implements HandlerInterceptor { if (redisToken == null || !redisToken.equals(token)) { log.error("登录已失效"); response.setStatus(401); + response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("登录已失效"); return false; }