From 5fd17517e41d1e8b11909e0597d2b51af73ee246 Mon Sep 17 00:00:00 2001 From: niuniuniu Date: Thu, 23 Nov 2023 13:34:11 +0800 Subject: [PATCH] =?UTF-8?q?AOP=E8=AE=B0=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vehicle-company-common/pom.xml | 10 +++ .../vehicle/company/server/aop/AopLog.java | 64 +++++++++++++++++++ .../server/controller/FirmController.java | 7 +- 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/aop/AopLog.java diff --git a/vehicle-company-common/pom.xml b/vehicle-company-common/pom.xml index bca6b51..835b499 100644 --- a/vehicle-company-common/pom.xml +++ b/vehicle-company-common/pom.xml @@ -31,6 +31,16 @@ 4.12 + + + org.aspectj + aspectjweaver + + + org.springframework.boot + spring-boot-starter-aop + + com.baidu.aip java-sdk diff --git a/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/aop/AopLog.java b/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/aop/AopLog.java new file mode 100644 index 0000000..6618c42 --- /dev/null +++ b/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/aop/AopLog.java @@ -0,0 +1,64 @@ +package com.dragon.vehicle.company.server.aop; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.time.LocalDateTime; + + +/** + * 记录日志 + * + * @author HuZhiYong + * @version 2023/11/23 - 11:06 + */ +@Aspect +@Component +public class AopLog { + + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + ThreadLocal startTime=new ThreadLocal<>(); + + /** + * 定义需要被拦截的切点 + */ + @Pointcut("execution(public * com.dragon.vehicle.company.server.controller.*.*(..))") + public void pointcut(){ + + } + + + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + startTime.set(System.currentTimeMillis()); + //使用ServletRequestAttributes请求上下文获取方法更多 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + String className = joinPoint.getSignature().getDeclaringTypeName(); + String methodName = joinPoint.getSignature().getName(); + LocalDateTime start = LocalDateTime.now(); + + //使用数组获取参数 + Object[] array = joinPoint.getArgs(); + ObjectMapper mapper = new ObjectMapper(); + //执行函数前打印日志 + logger.info("开始时间:"+start); + logger.info("调用前:目标方法的类名:{},方法名:{},传递的参数为:{}",className,methodName,mapper.writeValueAsString(array)); + logger.info("URL:{}",request.getRequestURL().toString()); + logger.info("IP地址:{}",request.getRemoteAddr()); + //调用整个目标函数执行 + Object obj = joinPoint.proceed(); + //执行函数后打印日志 + logger.info("调用后:目标方法的类名:{},方法名:{},传递的参数为:{}",className,methodName,mapper.writeValueAsString(obj)); + logger.info("耗时:{}ms",System.currentTimeMillis()-startTime.get()); + return obj; + } +} diff --git a/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/controller/FirmController.java b/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/controller/FirmController.java index 417d8db..58de5a5 100644 --- a/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/controller/FirmController.java +++ b/vehicle-company-server/src/main/java/com/dragon/vehicle/company/server/controller/FirmController.java @@ -9,6 +9,7 @@ import com.dragon.vehicle.company.common.domain.req.FirmQueryReq; import com.dragon.vehicle.company.common.domain.req.FrimUpdateReq; import com.dragon.vehicle.company.server.service.FirmService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -18,7 +19,8 @@ public class FirmController { @Autowired private FirmService firmService; - + @Autowired + private RedisTemplate redisTemplate; /** * 企业信息录入 @@ -45,7 +47,7 @@ public class FirmController { /** - * 查看数据 + * 查看企业列表 * @return */ @GetMapping("/list") @@ -55,6 +57,7 @@ public class FirmController { } + /** * 逻辑删除 * @param firmId