再学AOP
概念:
切面(aspect):一个关注点的模块化,这个关注点可能会横切多个对象。
连接点:Joinpoint:在程序执行过程中某个特定的点,一个连接点总是代表一个方法的执行。通过声明使(advice)通知的主体部分获得连接
点的信息。
通知(advice)在某个特定的连接点上执行的动作。许多aop框架包括spring都是以拦截器做通知的模型的,并维护一个以连接点为中心的拦截
器链。
切入点(Pointcut):匹配连接点的断言。
引入(Introduction):声明额外的方法或者麽各类型的字段,spring允许引入新的接口到任何被代理的对象。通过使用一个引入来使bean实
现IsModify接口,以简便缓存机制。
目标对象(Target Object):被一个或者多个切面所通知的对象
Aop代理(AOPProxy):Aop框架创建的对象,用来实现切面契约(aspect contract)包括通知方法执行等功能。spring中是JDK动态代理。或
者是CGLIB代理spring2.0最新引入的基于模式(schema-based)风格和AspectJ注解风格的切面声明,对与使用这些风格的用户来说,代理的创
建使的
织入(Weaving):把切面连接到其他的应用程序类型或者对象上,并创建一个通知的对象,
前置通知:在连接点之前执行的通知,但这个通知不能阻止连接点前的执行
返回后通知:在连接点正常完成后执行的通知
抛出异常后的通知:在方法抛出异常退出时执行的通知。
后通知:当某连接退出的时候执行的通知。
环绕通知:包围一个连接点的通知。
注意:尽量使用最简单的通知类型来实现需要的功能,用合适的通知类型会使编程变得简单,并且能够避免很多潜在的错误。
切入点和连接点匹配的概念是AOP的关键,这使得AOP不同于其他仅仅提
供拦截功能的旧技术。
AOP的功能和目标
上面简单的说了一些Aop的概念,进来有看了一下,感觉应该继续写下去,继续写一下它的功能和目标吧:
Spring AOP用纯Java实现。它不需要专门的编译过程。Spring AOP不需要控制类装载器层次,因此它适用于J2EE web容器或应用服务器,
Spring目前仅支持使用方法调用作为连接点(join point)虽可以加入对成员变量拦截器支持,但Spring并没有实现成员变量拦截器。Spring
并不是要尝试提供最完整的AOP实现(尽管Spring AOP有这个能力), 相反的,它其实侧重于提供一种AOP实现和Spring IoC容器的整合,用于
帮助解决在企业级开发中的常见问题。因此,它通常都和IoC容器一起使用。与其他AOP实现相比这是一个显著的区别。有些事使用Spring AOP
是无法轻松或者高效的完成的,比如说通知一个细粒度的对象。事实证明只要适合AOP来解决的,Spring AOP都没有问题,Spring AOP提供了一
个非常好的解决方案。而且spring从不去竞争哪个框架,而是去包容她,互补她。呵呵是不是一个最完美的情人....不爱她你还爱谁?
下一次我准备再看看AOP的代理机制吧
分享到:
相关推荐
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)...对于希望深入了解Spring AOP原理与实践的读者来说,掌握以上概念将是开启面向方面编程之旅的第一步。
本示例将简要介绍如何在Spring应用中实现AOP,通过实际的代码示例帮助理解其工作原理。 首先,我们要理解AOP的核心概念。AOP是一种编程范式,它允许开发者定义“切面”(Aspects),这些切面封装了特定的关注点,如...
本篇文章将详细阐述Spring AOP的基本概念、种类、代理原理、通知类型以及切入点,帮助你深入理解这一强大的编程模式。 一、AOP概念 1. Joinpoint(连接点):在Spring AOP中,Joinpoint指的是程序执行的某个特定点...
一、适合人群 1、具备一定Java编程基础,初级开发者 ...(需要知道原理的请看spring aop源码,此处不做赘述) 3、可在现有源码上快速进行功能扩展 4、spring boot,mybatis,druid,spring aop的使用
本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...
#### 二、AOP 的基本原理与模式 **1. 核心需求与系统需求** - **核心需求**:指业务逻辑中必须实现的功能,例如用户登录、数据查询等。 - **系统需求**:包括但不限于日志记录、安全控制、事务管理等非功能性需求。...
在这个"SpringAOP的例子"中,我们将深入探讨如何在Eclipse环境下利用Spring AOP和动态代理来实现这些功能。 首先,让我们理解什么是AOP。AOP是一种编程范式,旨在减少代码的重复性和增强可维护性。在传统的OOP中,...
在提供的压缩包文件"springAOP"中,可能包含了以下内容: - **切面类(Aspect Class)**:包含切点和通知的Java类,可能使用了`@Aspect`注解。 - **目标类(Target Class)**:被AOP代理的对象,通常包含业务逻辑。...
Spring AOP,全称为Aspect-Oriented Programming(面向切面编程),是Spring框架的重要...通过学习这个项目,你可以深入理解Spring AOP的工作原理,以及如何在实际项目中有效地利用它来提升代码的复用性和可维护性。
理解和掌握AOP的概念及其在Spring框架中的实现方式,包括基于XML和注解的配置方式,以及JDK动态代理和CGLIB代理的原理和使用。通过学习,应能独立实现AOP相关的功能,提升代码的可扩展性和可维护性。
标题 "springaop" 暗示我们关注的是Spring框架中的AOP(面向切面编程)模块。在Spring框架中,AOP是一种强大的工具,它允许程序员定义“切面”,这些切面可以封装横切关注点,如日志、事务管理、性能监控等,将它们...
首先,了解AOP的基本理念是理解其工作原理的关键。AOP是一种编程范式,旨在减少代码重复,提高可维护性和可读性。在传统面向对象编程中,我们通常在多个类或方法中重复编写相同的代码(如日志、异常处理)。AOP允许...
在实践中,你可以通过修改源代码,尝试不同的切点和通知类型,以便更深入地了解Spring AOP的工作原理。同时,结合文档中的理论知识,将有助于你形成完整的理解。 总之,Spring AOP是Spring框架中不可或缺的一部分,...
通过这些示例,你可以深入理解Spring AOP的工作原理,掌握其配置和使用方式,从而在实际项目中灵活地应用切面编程,提高代码的可维护性和可复用性。 请注意,这个压缩包可能包含相关的代码文件、配置文件和文档,...
在这个"SpringAop实例"中,可能包含了演示如何创建和使用这两种配置方式的代码示例。文件列表中的"spring32"可能是指Spring 3.2版本的相关文件,这个版本的Spring对AOP的支持已经相当成熟。 通过学习这个实例,你...
通过查看和运行这些代码,你可以更深入地理解Spring AOP的工作原理和使用方式。 总结来说,Spring AOP是Spring框架提供的一个强大功能,它使得我们可以更优雅地处理系统中的横切关注点,提高代码的可读性和可维护性...
1. **AOP概念**:解释AOP的基本原理,包括切面、通知(Advice)、切入点(Pointcut)、织入(Weaving)等核心概念。 2. **Spring AOP支持**:介绍Spring如何通过代理模式实现AOP,包括JDK动态代理和CGLIB代理的差异...
学习这些示例,你可以更深入地理解Spring AOP的工作原理,掌握如何使用动态代理和责任链模式来编写切面,以及如何通过注解简化AOP的配置和使用。这些知识对于任何涉及Spring框架的开发者来说都是至关重要的,因为...
不过,理解XML配置方式有助于深入理解Spring AOP的底层原理。 总的来说,Spring AOP通过XML配置为我们提供了一种灵活的方式来管理横切关注点,使我们的代码更加模块化和可维护。通过定义Advisor、切点和通知,我们...
在"SpringAOP测试Demo"中,我们通常会涉及以下几个核心概念和操作: 1. **切面(Aspect)**:切面是关注点的一个模块化,它包括了连接点、通知、目标对象、织入和引入。在Spring AOP中,切面通常由一个或多个注解的...