关注点(concern):一个关注点可以是一个特定的问题概念,或是应用程序的兴趣区间,总而言之,应用程序必须达到的一个目目标。 eg:安全性检查,事务管理,性能监控。在一个oo的应用中,关注点可能已经被代码模块化,也可能散落在整个对象模型之中
横切关注点(crosscutting concern):如果一个关注点的实现代码散落在很多个类或方法之中,eg:安全性检查,我们称之为横切关注点
方面(aspect):一个方面是对一个横切关注点的模块化,它把原本散落在各处的用于实现这个关注点的代码归整到一处
连接点(join point):程序执行过程中的一点
1.方法调用(method invocation):对方法可能包括构造函数的调用,不过并非所
有的aop框架都支持对象构造时的增强(advice)
2.字段访问(field access):读或写的实例变量,同样,并非所有aop框架都支持字
段访问的增强,那些支持这类增强的aop框架都可以区分读操作或写操作
3.异常抛出(throws):特定的异常被抛出
增强(advice):在特定连接点执行的动作,很多aop框架都以拦截器(interceptor)的形式来表现增强————所谓拦截器是这样的一个对象,当连接点被调用时,它会收到一个回调消息。增强的例子包括:a。在执行特定连接点之前,检查安全性凭证 b.在执行某个方法之前开启事务,在连接点执行完毕后提交回滚事务
切入点(pointcut):一组连接点的总称,用于指定某个增强,应该何时被调用,,切入点通常用正则表达式或别的通配符语言来描述,有些aop实现支持切入点的组合
引介(introduction):为一个现有的java类或接口添加方法或字段,这种技术可以用于实现java中的多继承,或者给现有的对象模型附加新的api;eg:可通过引介让一个现有的对象实现w3c规定的xmlnode接口(参见混入继承)
混入继承(mixin inheritance):一个“混入类”封装了一组功能,这组功能可以被混入到现有的类当中,并且无需求助于传统的继承手段。在aop这里,混入是通过引介来实现的,在java中可通过混入来模拟多继承
织入(wearing):将方面整合到完整的执行流程中(完整的类,此时被织入的便是引介)
当执行流程进展到连接点时,增强会首先接管流程控制权,当增强允许执行流程继续前进,执行真正的方法调用或字段访问时,我们就说这样操作(procceed)了
不同类型的增强:
前增强(before ,pre):在连接点调用之前,首先调用增强
后增强(after,post):在连接点调用之后,再调用增强,在aspectJ中,后增强又分为三种:
1.在调用成功完成之后,aspectj和spring都将这种增强称为“返回后增强”(after returning advice).
2.在抛出某种特定类型或子类型的异常 后,aspectj称之为“抛出后异常”(after throwing advice),spring称为“抛出异常”(throws advice)
3.在特定点的任何调用之后,不管嗲用是否抛出异常,aspectj称为“后增强”(after advice)
环境增强(around):这类增强可以完全控制执行流程,除了完成本身的工作之外,它还需要负责主动调用连接点,促使真是的操作发生(procced)--这通常是通过调用某个特定的方式来完成的
分享到:
相关推荐
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。这个"spring aop jar 包"包含了实现这一功能所需的类和接口,...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...
在本教程中,我们将深入探讨Spring AOP的不同使用方法,包括定义切点、通知类型、组装切面以及使用JUnit4进行测试。 首先,我们需要理解Spring AOP的基础概念。AOP的核心是切点(Pointcut),它定义了关注点在何处...
现在,我们回到主题——"springaop依赖的jar包"。在Spring 2.5.6版本中,使用Spring AOP通常需要以下核心jar包: - `spring-aop.jar`:这是Spring AOP的核心库,包含了AOP相关的类和接口。 - `spring-beans.jar`:...
AOP概念 - **切面(Aspect)**:切面是关注点的模块化,通常包括业务逻辑与横切关注点,如日志、安全检查等。 - **通知(Advice)**:通知是切面在特定连接点上执行的行为,如方法调用前、后、异常时等。 - **连接...
它包含了一些基本的AOP概念,如Advisor、Pointcut和Proxy等,是连接不同AOP实现的桥梁。 这些库的组合使得Spring AOP能够有效地工作。使用Spring AOP,开发者可以定义切面,声明切入点(即关注点的定位),编写通知...
在深入理解 Spring AOP 的源码时,需要熟悉 Spring IoC 的工作原理,以及 AOP 相关的概念,如切点表达式、通知类型等。了解这些基础知识可以帮助我们更好地掌握 Spring AOP 的实现细节。在分析源码时,可以参考作者...
在`springAop1`这个压缩包中,可能包含了一个简单的应用示例,展示了如何定义一个切面类,以及如何在该类中定义通知方法。例如,我们可能会看到一个名为`LoggingAspect`的类,其中包含了`@Before`注解的方法,用于在...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许我们通过定义“切面”来模块化横切关注点,比如日志、事务管理、性能监控等。在传统的面向对象编程中,这些关注点...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它允许我们通过分离关注点来简化应用程序的开发。在传统的面向对象编程中,业务逻辑与日志记录、事务管理、性能监控等横切...
AOP的核心概念包括: 1. **通知(Advice)**:通知定义了切面在何时何地执行。在Spring中,有五种不同类型的Advice:`Before`(前置通知)、`After-Returning`(返回后通知)、`After-Throwing`(异常后通知)、`...
其中,Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它为开发者提供了在不侵入业务代码的情况下,进行日志记录、性能监控、事务管理等横切关注点的能力。本文将深入探讨...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要模块,它扩展了传统的面向对象编程,允许开发者定义“横切关注点”(cross-cutting concerns),如日志、事务管理、性能监控等。...
- **SpringAOP.avi**:可能是一个视频教程,详细讲解了Spring AOP的概念和实践。 - **SpringAOP.doc**:可能是文档教程,包含了详细的步骤和示例代码。 - **SpringAOP_src.rar**:源代码示例,供你参考和实践。 - **...
Spring框架中的AOP模块使用了动态代理来实现AOP概念。Spring AOP允许开发者定义切面,并在这些切面中指定拦截的方法。Spring AOP支持不同的代理策略,包括JDK动态代理和CGLIB代理。如果被代理的类没有实现接口,...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种强大的方式来实现横切关注点,如日志、事务管理、安全性等,从而解耦应用程序的核心业务逻辑。在Spring AOP中,关注点被模块化为独立的“切面”...
Spring AOP 和 Spring IOC 是 Spring 框架的两个核心组件,它们对于任何基于 Java 的企业级应用开发都至关重要。Spring AOP(面向切面编程)允许开发者在不修改源代码的情况下,通过“切面”来插入新的行为或增强已...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,用于实现横切关注点的模块化。它允许开发者定义“切面”,将那些与业务逻辑无关,却为多个对象共有的行为(如日志、...
Spring AOP,全称为Aspect Oriented Programming,是Spring框架中的一个重要模块,主要负责处理系统中的...文件"5.SpringAOP_01"和"6.SpringAOP_02"很可能是课程的分阶段内容,涵盖了从基础概念到进阶实践的详细讲解。