LogAspect.java 1.5 KB
Newer Older
Q
qinyingjie 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
package com.kwan.springbootkwan.aop;

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
public class LogAspect {

    @Pointcut(value = "execution(* com.kwan.springbootkwan.service.*.*(..))")
    public void pcl() {
    }

    @Before(value = "pcl()")
    public void before(JoinPoint point) {
        String name = point.getSignature().getName();
        System.out.println(name + "方法开始执行 ...");
    }

    @After(value = "pcl()")
    public void after(JoinPoint point) {
        String name = point.getSignature().getName();
        System.out.println(name + "方法执行结束 ...");
    }

    @AfterReturning(value = "pcl()", returning = "result")
    public void afterReturning(JoinPoint point, Object result) {
        String name = point.getSignature().getName();
        System.out.println(name + "方法返回值为:" + result);
    }

    @AfterThrowing(value = "pcl()", throwing = "e")
    public void afterThrowing(JoinPoint point, Exception e) {
        String name = point.getSignature().getName();
        System.out.println(name + "方法抛异常了,异常是:" + e.getMessage());
    }

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