自定义注解和AOP的结合使用

了解几个概念

请看官方文档

https://docs.spring.io/spring...

不想看官方文档的看这里

AOP

AOP是面向切面编程,是OOP(面向对象)编程的补充。OOP的模块关键单元在在类,而AOP在于切面。

AOP中的几个概念

Aspect
Join point
Advice
PointCut
Introduction
Target object
AOP proxy
Weavein

通知的类型Types of advice:

Before advice
After returning advice
After throwing advice
After final advice
Around advice

AspectJ和AOP

AspectJ使用

启动 AspectJ支持

声明切面

package org.xyz;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class NotVeryUsefulAspect {

}

声明切点

支持切点标识符
execution
within
args
@target
@within
@args
@annotation

声明通知

通知和切点表达式关联,在切点表达式之前,之后,执行

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect
public class BeforeExample {

  @Before("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")
  public void doAccessCheck() {
    // ...
  }

}

你可能感兴趣的:(aop)