Spring 整合 aspectj 框架实现的 aop

在现在的开发中使用这种方案比较多

在 spring2.0 以后它支持 jdk1.5 注解,而整合 aspectj 后可以使用 aspectj 语法,可以简化开发。

Aspect:切面 =切点+通知(多个切点与多个通知的组合)

AspectJ 它是一个第三方框架,spring 从 2.0 后可以使用 aspectJ 框架的部分语法.

AspectJ 框架它定义的通知类型有 6 种

1. 前置通知 Before 相当于 BeforeAdvice

2. 后置通知 AfterReturning 相当于 AfterReturningAdvice

3. 环绕通知 Around 相当于 MethodInterceptor

4. 抛出通知 AfterThrowing 相当于 ThrowAdvice

5. 引介通知 DeclareParents 相当于 IntroductionInterceptor

6. 最终通知 After 不管是否异常,该通知都会执行

相比 spring 的传统 AOP Advice 多了一个最终通知

基于XML配置方案

第一步: 创建目标(target)

Spring 整合 aspectj 框架实现的 aop

第二步: 创建通知( 增强 advice)

注意:在 aspectj 中它的增强可以不实现任何接口,只需要定义出增强功能(也就是方法)。

Spring 整合 aspectj 框架实现的 aop

第三步:在 在 spring 的 的 xml 配置文件中来配置

Spring 整合 aspectj 框架实现的 aop

<aop:config>下的<aop:aspect>是 aspectJ 框架用来声明切面的标签。

Spring 整合 aspectj 框架实现的 aop

前置通知

Spring 整合 aspectj 框架实现的 aop

后置通知

Spring 整合 aspectj 框架实现的 aop

环绕通知

Spring 整合 aspectj 框架实现的 aop

Spring 整合 aspectj 框架实现的 aop

异常抛出通知

Spring 整合 aspectj 框架实现的 aop

注意:目标行为只有抛出了异常后才会执行这个增强方法。

最终通知

Spring 整合 aspectj 框架实现的 aop

无论是否有异常,最终通知都会执行。

 

 

 

 

Spring 整合 aspectj 框架实现的 aop