1. 程式人生 > >springboot最簡單的AOP

springboot最簡單的AOP

package com.yitiantec.ecommerce.admin.config;


import java.lang.reflect.Method;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.context.annotation.Configuration;

import com.yitiantec.ecommerce.admin.util.XinyuanJSONUtil;

import lombok.extern.slf4j.Slf4j;

@Aspect //一個切面
@Configuration // spring boot 配置類
@Slf4j
public class RequestParamValidAspect {

 

@Pointcut("execution(* com.yitiantec.demo.pay.controller.*.*(..))")
public void soaServiceBefore(){}

/* * 通過連線點切入 */
@Before("soaServiceBefore()")
public void twiceAsOld1(JoinPoint point) {
// 獲得切入目標物件
Object target = point.getThis();
// 獲得切入方法引數
Object [] args = point.getArgs();
// 獲得切入的方法
Method method = ((MethodSignature)point.getSignature()).getMethod();

log.info("AOP 進入方法"+method);
log.info("APO 收到引數="+XinyuanJSONUtil.gSonString(args));
}
}