SpringBoot利用AOP拦截自定义注解(以日志为例)
这波操作有两个动作,一个是自定义注解,另一个是AOP拦截注解,下面按步进行:
- 自定义注解:
package com.pilot.basic.system.annotation;
/**
* @name: OperateLog
* @author: lyr.
* @date: 2019/9/9.
* @version: 1.0
* @Description:自定义日志注解
*/
import java.lang.annotation.*;
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OperateLog {
/**
* 要执行的操作类型
**/
String methodDesc() default "";
/**
* 要执行的操作名称
**/
String moduleName() default "";
}
说明:之所以要定义上面两个方法,是因为日志需要记录请求的方法的详细描述,以供用户知道这个方法是干嘛的,比如:
然而,这两个属性又不能通过“JoinPoint”来获取到,所以这里要作为注解的参数来获取。具体是这样获取到的,在使用注解时,写上这两个属性的值即可,如下:
- AOP拦截注解:
package com.pilot.basic.system.annotation;
/**
* @name: OperateLogAspect
* &#