概念:
将一批具备逻辑相关性的类视作一个切面,并以切面为单位,添加功能;通常用于实现具备横切性质的系统级服务。是OOP的补充。
名词
-
连接点 JoinPoint : 可以被切入的点,通常是方法。连接点对象描述了当前连接点的信息,比如,目标对象、方法信息、参数等等
-
通知 Advice : 需要向切面加入的功能
-
引入 Introduction: 对目标对象添加方法和属性
-
切面 Aspect : 将切面模块化,包含了要切入的功能,切入点等等
-
目标对象 Target: 切面通知的对象
-
代理 Proxy : AOP的一种实现方式
-
织入 Weaving: 将切面应用到目标对象的过程
-
切入点 PointCut : 需要织入通知的连接点,通常用SPEL描述
实现步骤
- 通知 (SpringBean)
- 前 before JoinPoint
- 后 after JoinPoint
- 环绕 around ProceedingJoinPoint
- 异常 after-throwing
- 返回 after-returning
- 配置
- 包扫描
- aop 关联到通知
- pointcut
- 通知方法
- 通知 (SpringBean)
aop的实现(具体)
代理模式是实现aop的一种方式,作用:在不改变原来代码的情况下,给指定的类添加功能。