先介绍一下不用annotation的方式
@Slf4j
@Aspect
@Component
public class RecorderAspect {
@Before("execution(* com.a.b.controller.*.methodname*())")
public void recordAdvice() {
log.info("LOG FROM ADVICE");
}
}
在所有com.a.b.controller中方法名以methodname 参数不限的任意方法执行前执行此函数。
如果要用annotation也十分简单
使用annotation的方式
先定义好注解的名字
public @interface Recorder {
}
然后是advice定义,和上面大同小异
@Slf4j
@Aspect
@Component
public class RecorderAspect {
@Before("@annotation(com.a.b.config.Recorder)")
public void recordAdvice() {
log.info("LOG FROM ADVICE");
}
}