A simple example of section

package com.sf.osms.aps.aop;

import java.util.HashMap;
import java.util.Map;

import org.apache.poi.ss.formula.functions.T;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.CodeSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class AopTest {//public aspect AopTest
private static final Logger logger = LoggerFactory.getLogger(AopTest.class);

@Pointcut("execution(* 方法的全路径(..))")
public void pointCut() {
}

// 后置方法
@After(value = "pointCut()")
public void afterMethod(JoinPoint joinPoint) throws Throwable {
Map param = getNameAndValue(joinPoint);
T param1 = (T) param.get("paramName1");
String param2 = (String) param.get("paramName2");
// TODO
}

/**
* 获取参数Map集合
* @param joinPoint
* @return
*/
Map<String, Object> getNameAndValue(JoinPoint joinPoint) {
Map<String, Object> param = new HashMap<>();
Object[] paramValues = joinPoint.getArgs();
String[] paramNames = ((CodeSignature) joinPoint.getSignature()).getParameterNames();
for (int i = 0; i < paramNames.length; i++) {
param.put(paramNames[i], paramValues[i]);
}
return param;
}
}

Guess you like

Origin www.cnblogs.com/csysky/p/11646606.html