延续上篇,通过切片来具体实现对应注解:
第一步:使用@Aspect注解定义类
@Aspect
@Component
public class QLMLogAspect {}
第二步:定义切入点(关联对应注解模式)
@Pointcut("@annotation(org.qlm.common.annotation.RecordSysLog)")
public void logPointCut() {
}
第三步:定义通知
@Around("logPointCut()")
public Object around(ProceedingJoinPoint point) throws Throwable {}
其中通过如下程序可以获取注解定义的属性
MethodSignature signature = (MethodSignature) point.getSignature();
Method method = signature.getMethod();
RecordSysLog syslog = method.getAnnotation(RecordSysLog.class);
可以用如下方法获取调用的参数:
Object[] args = point.getArgs();