AOP 我想大家对它一定都很熟悉,但是又有多少人对它的几个基本概念真正很清楚呢,官方文档看了很多,但总觉的讲的还是太抽象,今天我将以我自己的理解,用一种通俗的讲法,再解释一下:
1. Aspect: 你可以把它想象成那些你需要在整个application ,全局范围内要使用的common 的 feature(比如 logging, performance monitoring, exception handling, transaction management, etc).
2. Advice: Advice就是一段代码,将要在程序运行时被调用,它就是你的aspect的实现逻辑,是实现AOP最重要的部分,你可以把它看作是一个装饰器模式,只不过它不需要去包装一个object, 但他们有相同的功效。
3. JoinPoint: JoinPoint就是一个地址,在这个地方advice应当被执行。 (比如 field access, method invocation , constructor invocation, etc)Spring 的AOP当前只support Method invocation.
4.PointCut PointCut是有许多JoinPoint组成的,通常我们用通配符来定义PointCut,来定义一组JoinPoint,在这些地方 Advice需要被调用。(比如我们有一个PointCut(com.test.service.*(..)))那么service中的每个方法都是一个JointPoint.
5.Targets/Target Objects 这个概念Spring 的AOP用的多一点,因为Spring的AOP是用代理实现的,也就是给目标对象加上一个代理,然后所以对目标对象的调用都是通过这个代理去掉的。 这里的目标对象就是Targets/Target Objects.
6.Introduction(通知) Introduction 提供的一种机制可以在运行时给某个object 加上方法。在Spring 中,通知仅仅局限与 interface,也就是你只能在运行时动态给某个object加上一个interface.
以上是本人的理解,如不对,希望大家指出。
分享到:
相关推荐
#### 二、AOP基本概念 AOP是一种编程范式,其目的是提高模块化程度,特别是将那些对很多类都具有影响的公共行为封装起来,以便减少系统的耦合度,并且增加可重用性。Spring AOP是在Spring框架的基础上实现的一种面向...
1. AOP基本概念的介绍,包括上述核心概念的详细解释。 2. Spring AOP的配置方式,包括XML配置和基于注解的配置。 3. 如何定义切入点表达式,例如使用`execution()`、`within()`、`args()`等函数来匹配连接点。 4. ...
AOP 基本概念 AOP 的 existence 目的是为了解耦,使得一组类可以共享相同的行为。在 OOP 中只能通过继承类和实现接口来实现,但是这样的缺点是会使代码的耦合度增加,且类继承只能为单继承,阻碍更多行为添加到一组...
1. **AOP基本概念**:介绍AOP的核心概念,包括切面(Aspect)、连接点(Join Point)、通知(Advice)、切入点(Pointcut)和织入(Weaving)。 2. **Spring AOP简介**:讲解Spring框架如何提供AOP支持,包括基于...
1. **AOP基本概念**:首先,我们会理解什么是面向切面编程,它与传统的面向对象编程的区别,以及它为何能在解决系统中横切关注点问题上表现出优越性。 2. **Spring AOP实现方式**:Spring提供了两种AOP实现,一种是...
1. AOP基本概念的介绍,包括切面、通知、连接点和代理等。 2. 如何定义和使用切点表达式来指定通知的执行时机。 3. 不同类型的通知(Before、After、After Returning、After Throwing、Around)的使用场景和示例代码...
AOP基本概念** - **切面(Aspect)**:切面是关注点的模块化,它包含关注点的定义和连接点的选择。 - **连接点(Join Point)**:程序执行过程中的特定点,如方法调用、异常处理等。 - **通知(Advice)**:在...
AOP基本概念 - **切面(Aspect)**:AOP的核心,它封装了横切关注点,可以理解为一组相关方法的集合,比如日志记录、事务处理等。 - **通知(Advice)**:在特定连接点上执行的动作,如前置通知、后置通知、异常...
**一、AOP基本概念** 1. **切面(Aspect)**: AOP的核心概念,它将关注点(如日志、事务管理)封装为一个模块,可以看作是多个通知(advises)的集合。 2. **连接点(Join Point)**: 程序执行过程中的特定点,如...
#### 一、AOP基本概念 **Spring AOP** 是基于面向切面编程(Aspect Oriented Programming)的一种技术,主要用于处理横切关注点问题,比如日志记录、安全控制、事务管理等功能,这些功能在传统面向对象编程中往往...
### 一、AOP基本概念 1. **切面(Aspect)**:切面是AOP的核心,包含了横切关注点和通知的组合。在Spring AOP中,切面可以由一个Java类或一个注解定义。 2. **通知(Advice)**:通知是指在特定连接点执行的代码,...
一、AOP基本概念 AOP是一种编程范式,旨在改善程序结构,通过将横切关注点(如日志、事务管理等)与业务逻辑分离,提高代码的可维护性和可重用性。在Spring中,AOP主要通过两种方式实现:一种是基于XML配置,另一种...
1. **AOP基本概念** - 面向切面编程(AOP)是面向对象编程(OOP)的补充,它允许程序员定义“横切关注点”,如日志、安全性或事务管理,然后将这些关注点与业务逻辑分离。 - 切面:AOP中的核心概念,它封装了多个相关...
#### 二、AOP基本概念 面向方面编程是一种编程范式,用于将横切关注点从业务逻辑中分离出来,并将其封装成独立的组件——**方面**(Aspect)。通过这种方式,可以避免横切关注点代码在多个业务模块之间的重复,提高...
**一、AOP基本概念** 1. **切面(Aspect)**:切面是关注点的模块化,它包含通知(Advice)和切点(Pointcut)两部分。通知定义了具体的行为,切点定义了该行为何时何地执行。 2. **通知(Advice)**:在特定的...
1. **AOP基本概念** - **切面(Aspect)**:切面是关注点的模块化,如日志、事务管理等,它结合了业务逻辑与横切关注点。 - **通知(Advice)**:通知是在特定连接点上执行的行为,如日志记录。 - **连接点(Join...
- **AOP基本概念:** - **切面(Aspect):**一个关注点的模块化表示。 - **连接点(JointPoint):**程序执行过程中的某个特定点,比如方法调用或异常抛出。 - **通知(Advice):**在特定连接点上执行的操作。 - **...