深入浅出 Spring AOP:面向切面编程详解

需积分: 1 0 下载量 8 浏览量 更新于2024-07-20 收藏 278KB DOCX 举报
Spring AOP 详解 **AOP 概述** AOP(Aspect-Oriented Programming,面向切面编程)是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。AOP 的主要编程对象是切面(aspect),而切面模块化横切关注点。在应用 AOP 编程时,仍然需要定义公共功能,但可以明确的定义这个功能在哪里,以什么方式应用,并且不必修改受影响的类。这样一来横切关注点就被模块化到特殊的对象(切面)里。 **AOP 的好处** 1. 每个事物逻辑位于一个位置,代码不分散,变得便于维护和升级。 2. 业务模块更简洁,只包含核心业务代码。 **AOP 术语** 1. 切面(Aspect):横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象。 2. 通知(Advice):切面必须要完成的工作。 3. 目标(Target):被通知的对象。 4. 代理(Proxy):向目标对象应用通知之后创建的对象。 5. 连接点(Joinpoint):程序执行的某个特定位置:如类某个方法调用前、调用后、方法抛出异常后等。连接点由两个信息确定:方法表示的程序执行点;相对点表示的方位。 6. 切点(Pointcut):每个类都拥有多个连接点:例如 ArithmethicCalculator 的所有方法实际上都是连接点,即连接点是程序类中客观存在的事务。AOP 通过切点定位到特定的连接点。 **AspectJ** AspectJ 是 Java 社区里最完整最流行的 AOP 框架。 **Spring AOP** Spring AOP(面向方面编程)框架,用于在模块化方面的横切关注点。简单地说,它只是一个拦截器拦截一些过程,例如,当一个方法执行,Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。 **四种 AOP 通知** 在 Spring AOP 中,有 4 种类型通知(advices)的支持: 1. 前置通知(Before Advice):在目标方法执行之前执行的通知。 2. 后置通知(After Advice):在目标方法执行之后执行的通知。 3. 环绕通知(Around Advice):在目标方法执行之前和之后执行的通知。 4. 异常通知(Throws Advice):在目标方法抛出异常时执行的通知。 **Spring AOP 配置** 在 Spring 2.0 以上版本中,可以使用基于 AspectJ 注解或基于 XML 配置的 AOP。