AOP
AOP(Aspect Object programmar) 面向切面编程,它是对某一类问题的统一处理,而StringAOP就是AOP思想的一种具体实现就像Ioc和DI。
AOP组成
切面(Aspect)
切⾯(Aspect)由切点(Pointcut)和通知(Advice)组成,它既包含了横切逻辑的定义,也包
括了连接点的定义
切⾯是包含了:通知、切点和切⾯的类,相当于 AOP 实现的某个功能的集合
切点(Pointcut)
Pointcut 是匹配 Join Point 的谓词。
Pointcut 的作⽤就是提供⼀组规则(使⽤ AspectJ pointcut expression language 来描述)来
匹配 Join Point,给满⾜规则的 Join Point 添加 Advice
切点相当于保存了众多连接点的⼀个集合(如果把切点看成⼀个表,⽽连接点就是表中⼀条⼀条
的数据)
连接点(Join Point)
应⽤执⾏过程中能够插⼊切⾯的⼀个点,这个点可以是⽅法调⽤时,抛出异常时,甚⾄修改字段
时。切⾯代码可以利⽤这些点插⼊到应⽤的正常流程之中,并添加新的⾏为
连接点相当于需要被增强的某个 AOP 功能的所有⽅法。
通知(Advice)
切⾯也是有⽬标的 ——它必须完成的⼯作。在 AOP 术语中,切⾯的⼯作被称之为通知
StringAOP具体使用
- 添加StringAOP框架支持
- 定义切面和切点
- 实现通知
当创建好StringBoot项目后,在pom.xml中添加StringAOP框架,从maven中央仓库下载AOP的依赖
@Aspect,@Pointcut(“execution(…)”)
通知有五种
- 前置通知(@Before):通知方法会在具体方法之前调用
- 后置通知(@Afther):通知方法会在具体方法之后调用
- 异常通知(@AfterThrowing):通知方法会在具体方法报出异常后调用
- 返回通知(@AfterReturning):通知方法会在具体方法返回后调用
- 环绕通知(@Around):通知包裹了被通知的⽅法,在被通知的⽅法通知之前和调⽤之后执
⾏⾃定义的⾏为。
总结
AOP 是对某⽅⾯能⼒的统⼀实现,它是⼀种实现思想,Spring AOP 是对 AOP 的具体实现,SpringAOP 可通过 AspectJ(注解)的⽅式来实现 AOP 的功能,Spring AOP 的实现步骤是:
- 添加 AOP 框架⽀持。
- 定义切⾯和切点。
- 定义通知。
概念很抽象,最好找个老师/前辈讲解或者看视频讲解.