package com.example.tlias.AOP;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
public class TestJoinPoint {
@Pointcut("execution(* com.example.tlias.service.DeptLogService.*(..))")
public void before(JoinPoint joinPoint) {
log.info("TestJointPoint...before...");
String ClassName = joinPoint.getTarget().getClass().getName();
log.info("目标对象类名{}", ClassName);
String Methodname = joinPoint.getSignature().getName();
log.info("目标对象的方法名{}", Methodname);
Object[] args = joinPoint.getArgs();
log.info("目标方法时传入的参数{}", Arrays.toString(args));
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
log.info("TestJointPoint...around...");
String ClassName = proceedingJoinPoint.getTarget().getClass().getName();
log.info("目标对象的类名是{}", ClassName);
String MethodName = proceedingJoinPoint.getSignature().getName();
log.info("目标对象的方法名{}", MethodName);
Object[] args = proceedingJoinPoint.getArgs();
log.info("目标方法运行时传入的参数{}", Arrays.toString(args));
Object result = proceedingJoinPoint.proceed();
log.info("目标方法运行的返回值{}", result);
log.info("TestJointPoint around after....");
