延续上篇,通过切片来具体实现对应注解:
第一步:使用@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();