导入依赖
<!-- aop切面 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
创建注解
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ViewRecords {
long id() default 1L;
}
aop实现
@Slf4j
@Aspect
@Component
public class AnnotationAop {
//定义切点,注解作为切入点
@Pointcut("@annotation(com.qcby.teaching.msgmanage.annotation.ViewRecords)")
public void viewRecordsPoinCut() {
}
/**
* before 目标方法执行前执行,前置通知
* after 目标方法执行后执行,后置通知
* after returning 目标方法返回时执行 ,后置返回通知
* after throwing 目标方法抛出异常时执行 异常通知
* around 在目标函数执行中执行,可控制目标函数是否执行,环绕通知
*/
@Before("viewRecordsPoinCut()")
public void before(JoinPoint joinPoint)