1. 概念
AOP 是 OOP 的延续,是 Aspect Oriented Programming 的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP 设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP 可以说也是这种目标的一种实现。
- 我们现在做的一些非业务,如:日志、事务、安全等都会写在业务代码中(也即是说,这些非业务类横切于业务类),但这些代码往往是重复,复制——粘贴式的代码会给程序的维护带来不便,AOP 就实现了把这些业务需求与系统需求分开来做。这种解决的方式也称代理机制。
名词 | 说明 |
---|---|
Aspect(切面) | 官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”。“切面”在ApplicationContext 中aop:aspect来配置。白话(就是一个类) |
Pointcut(切入点) | 进行规则匹配,不同的匹配,执行不同的内容。白话(匹配规则) |
Target Object(目标对象) | 被代理的对象 |
JoinPoint(连接点) | 程序执行过程中的某一行为。白话(客户端调用的方法) |
Advice(通知) | 在连接点上触发的事件,从而可以在很多位置去执行额外的动作。如前置通知、后置通知、异常通知、环绕通知。白话(执行额外的方法) |