LogAspect.java 1.5 KB
Newer Older
Q
qinyingjie 已提交
1 2
package com.kwan.springbootkwan.aop;

3
import lombok.extern.slf4j.Slf4j;
Q
qinyingjie 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;

/**
 * AOP 实现方法拦截
 *
 * @author : qinyingjie
 * @version : 2.2.0
 * @date : 2022/12/19 16:17
 */
@Component
@Aspect
18
@Slf4j
Q
qinyingjie 已提交
19
public class LogAspect {
20 21 22

    @Pointcut(value = "execution(* com.kwan.springbootkwan.service.*.*(..)) && !execution(* com.kwan.springbootkwan.service.WebSocketServer.*(..))")

Q
qinyingjie 已提交
23 24 25 26 27 28
    public void pcl() {
    }

    @Before(value = "pcl()")
    public void before(JoinPoint point) {
        String name = point.getSignature().getName();
29
        log.info(name + "方法开始执行 ...");
Q
qinyingjie 已提交
30 31 32 33 34
    }

    @After(value = "pcl()")
    public void after(JoinPoint point) {
        String name = point.getSignature().getName();
35
        log.info(name + "方法执行结束 ...");
Q
qinyingjie 已提交
36 37 38 39 40
    }

    @AfterReturning(value = "pcl()", returning = "result")
    public void afterReturning(JoinPoint point, Object result) {
        String name = point.getSignature().getName();
41
        log.info(name + "方法返回值为:" + result);
Q
qinyingjie 已提交
42 43 44 45 46
    }

    @AfterThrowing(value = "pcl()", throwing = "e")
    public void afterThrowing(JoinPoint point, Exception e) {
        String name = point.getSignature().getName();
47
        log.info(name + "方法抛异常了,异常是:" + e.getMessage());
Q
qinyingjie 已提交
48 49 50 51 52 53
    }

    @Around("pcl()")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        return pjp.proceed();
    }
54
}