aop:advisor(aopadvisor配置多个)
## AOP:Advisor 全面解析### 简介在 Spring AOP 的世界中, `aop:advisor` 是一个至关重要的元素,它将
Advice
(通知) 与
Pointcut
(切点) 结合起来,形成一个完整的 AOP 单元,用于在特定连接点上执行横切关注点。简单来说,`aop:advisor` 就像一个精密的仪器,告诉 Spring 框架何时何地执行哪些增强操作。### `aop:advisor` 详解#### 1. 核心概念
Advice (通知):
定义了在连接点上要执行的增强操作,例如方法执行前记录日志、方法执行后校验结果等。常见的 Advice 类型包括:
`BeforeAdvice`:在目标方法执行前执行
`AfterReturningAdvice`:在目标方法成功返回后执行
`AfterThrowingAdvice`:在目标方法抛出异常后执行
`AroundAdvice`:围绕目标方法执行,可以控制方法是否执行、修改返回值等
Pointcut (切点):
定义了哪些连接点会被增强。它使用表达式语言 (例如 AspectJ 表达式) 来描述目标方法的特征,例如方法名、参数类型、注解等。
Advisor:
将 Advice 和 Pointcut 组合在一起,形成一个完整的 AOP 单元。#### 2. `
id 属性:
Advisor 的唯一标识符。
advice-ref 属性:
引用已定义的 Advice bean。
pointcut 属性:
直接使用 AspectJ 表达式定义切点。
pointcut-ref 属性:
引用已定义的 Pointcut bean。#### 3. 使用示例```xml
代码解释:
1. 定义了一个名为 `loggingAdvice` 的 Advice bean,用于记录日志。
2. 定义了一个名为 `myPointcut` 的 Pointcut bean,用于匹配所有以 `execute` 开头的方法。
3. 使用 `
模块化:
将横切关注点与业务逻辑分离,提高代码的可读性和可维护性。
重用性:
可以将定义好的 Advisor 应用于多个目标对象,提高代码的复用性。
灵活配置:
可以使用 XML 或 Java 注解的方式配置 Advisor,灵活方便。### 总结`aop:advisor` 是 Spring AOP 中不可或缺的一部分,它将 Advice 和 Pointcut 结合起来,实现对目标对象的增强,为构建灵活、可维护的应用程序提供了强大的支持。