From a4758c602c3beb4a3953c03440e8b511b1caf51e Mon Sep 17 00:00:00 2001 From: GUO <1923636941@qq.com> Date: Thu, 23 May 2024 22:00:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=96=B9=E6=B3=95=E5=90=8D?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/config/AsyncAspect.java | 39 +++++++++++++++++++ .../java/com/zhgd/xmgl/config/TaskAspect.java | 1 - 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/zhgd/xmgl/config/AsyncAspect.java diff --git a/src/main/java/com/zhgd/xmgl/config/AsyncAspect.java b/src/main/java/com/zhgd/xmgl/config/AsyncAspect.java new file mode 100644 index 000000000..daf743518 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/config/AsyncAspect.java @@ -0,0 +1,39 @@ +package com.zhgd.xmgl.config; + +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.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; + +@Aspect +@Component +@Slf4j +public class AsyncAspect { + @Pointcut("@annotation(org.springframework.scheduling.annotation.Async)") + public void servicePointcut() { + } + + @Around("servicePointcut()") + public void doAround(ProceedingJoinPoint jointPoint) throws Throwable { + // 获取当前访问的class类及类名 + Class clazz = jointPoint.getTarget().getClass(); + String clazzName = jointPoint.getTarget().getClass().getName(); + // 获取访问的方法名 + String methodName = jointPoint.getSignature().getName(); + // 获取方法所有参数及其类型 + Object[] args = jointPoint.getArgs(); + Class[] argClz = ((MethodSignature) jointPoint.getSignature()).getParameterTypes(); + // 获取访问的方法对象 + Method method = clazz.getDeclaredMethod(methodName, argClz); + log.info("开始执行异步方法:{}", methodName); + // 执行目标方法 + Object proceed = jointPoint.proceed(); + log.info("执行结束异步方法:{}", methodName); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/config/TaskAspect.java b/src/main/java/com/zhgd/xmgl/config/TaskAspect.java index 5c5a63371..3c1d44dad 100644 --- a/src/main/java/com/zhgd/xmgl/config/TaskAspect.java +++ b/src/main/java/com/zhgd/xmgl/config/TaskAspect.java @@ -21,7 +21,6 @@ public class TaskAspect { @Pointcut("@annotation(org.springframework.scheduling.annotation.Scheduled)") public void servicePointcut() { - System.out.println("Pointcut: 不会被执行"); } @Around("servicePointcut()")