package com.hh.aop;
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.reflect.MethodSignature;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LogAop {
//    private EntityManager entityManager;
    @Around("execution(* com.hh.controller..*.*(..))")
    public Object aopController(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("around");
        //获取方法参数值数组
        Object[] args = joinPoint.getArgs();
        //得到其方法签名
        MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
        //获取方法参数类型数组
        Class[] paramTypeArray = methodSignature.getParameterTypes();
        System.out.println(methodSignature.getParameterNames());
        System.out.println(paramTypeArray);
        Object result = joinPoint.proceed(args);
        System.out.println("=====checkSecurity====");
        for (int i = 0; i < joinPoint.getArgs().length; i++) {
            System.out.println(joinPoint.getArgs()[i]);
        }
        System.out.println(joinPoint.getSignature().getName());
        return result;
    }
}