`
simple1024
  • 浏览: 74326 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AOP术语(通俗理解)

阅读更多

AOP有以下几个术语:

Aspect

Advice

PointCut

JoinPoint

Target

Weave

需要的功能我们抽取出来了 ( 就是说得到切面 Aspect 了 ) ,之后就得去设计具体的方法了(比如需要验证,那我们就写一个验证方法呗)。此时 Advice 就应运而生了,我们在具体的 Aspect 类中去设计具体的方法(也是设计 Advice ,现在应该明白 Advice 的大概了吧其实它就是一个方法 。只是 Spring 给它取名曰:通知)

 

比如我要写一个用验证的安全类 Security (负责所有的验证功能) , 当中有个方法叫 checkSecurity(), 在调用其他方法之前调用它那它就成了前置通知( before 的概念有了吗?),之后调用就是后置通知( after )异常时调用就成( Throws 通知)

 

通知设计完之后我们需要调用啊,可是不是所有的方法都需要这一方法(如果不管三七二十一所有方法通过这横切面就需要调用,那效率何在?这不比收费站,你过就得给钱啊。呵呵 有车的朋友应该感受比较深刻),这时就需要进行判断了。判断的依据就是 Pointcut ,比如我只需要对方法名称开头为 add 的方法调用,那此时的 Pointcut 或许就定义为 add* 了。这下该明白什么是 PointCut 了吧,他就是一套表达式,常用的就支持正则表达式 通过他来进行方法的筛选,类似过滤器。

 

通知我们设计好了,也进行了筛选了现在就是将刷选的通添加到我的 Target Object 了(这一步 Spring 是通过代理实现的)。这个添加的过程就是所谓的 Weave , Spring 给了个很酷的名字 “ 织入 ” 。而 Target Object (目标对象)就是需要调用通知的那个类(暂且说类吧,形象点),而 Target Object 中那个可以触发通知的方法就是所谓的 JoinPoint

看一位大哥这样的理解,小弟也感悟了不少,就此借来给大家分享。

0
0
分享到:
评论

相关推荐

    Spring aop术语详解

    Spring 中的 AOP 术语可能会使人感到困惑,但本文将对 AOP 术语进行通俗的解释。 关注点(Concern) 关注点是我们要考察或解决的问题。如订单的处理、用户的验证、用户日志记录等都属于关注点。关注点可以分为...

    深入理解Android之AOP

    面向切面编程(AOP)是软件开发领域的一项重要技术,它与面向对象编程(OOP)相对应,但关注点不同。在本篇中,我们将深入探讨AOP的基本概念、优势以及在Android开发中的应用,同时与OOP进行比较分析。 首先,面向...

    aop例子源码通俗易懂

    本文将以一个实例来讲解AOP,帮助你深入理解其原理和使用方式。首先,我们来看一下AOP的核心概念: 1. **切面(Aspect)**:切面是AOP的核心,它封装了横切关注点,如日志、事务管理等。在Spring中,切面可以是一个...

    SpringAop的简单理解.pdf

    SpringAOP(面向切面编程)是Spring框架的一个关键组件,它允许开发者通过定义切面来统一处理横切关注点,比如日志、安全等。它与AspectJ一样,目标是为了处理横切业务,但实现方式有所区别。AspectJ是一种更全面的AOP...

    IOC(DI)与AOP概念的理解

    "IOC(DI)与AOP概念的理解" IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是软件设计中两个重要的概念。控制反转的意思是依赖关系的获取方式被反转了。所谓依赖,从程序的角度看,...

    开源框架spring详解-----AOP的深刻理解

    标题 "开源框架spring详解-----AOP的深刻理解" 指向的是对Spring框架中核心概念之一的面向切面编程(Aspect Oriented Programming, AOP)的深入探讨。AOP是Spring用来解决横切关注点问题的一种编程模式,它允许...

    AOP编程术语-通知

    通过学习这个示例,你可以更深入地理解AOP在实际项目中的应用。 总的来说,AOP通过通知和切点的概念,使得我们可以编写更加模块化和可维护的代码,降低了系统复杂性,提高了代码复用性。在Java领域,Spring框架提供...

    Spring AOP基础关于AOP是什么的理解

    Spring AOP 基础关于 AOP 是什么的理解 AOP(Aspect Oriented Programming 面向方面的编程)是一种实现横切面的工具,它是 OOP 的补充,而不是 OOP 的竞争对手。AOP 的出现是为了解决 OOP 中的缺陷,即 OOP 中的类...

    Spring AOP 概念理解及@AspectJ支持

    **Spring AOP 概念理解** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许我们通过定义“切面”来模块化横切关注点,比如日志、事务管理、性能监控等。在传统的...

    spring aop spring aop

    在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...

    Spring 2.5 AOP 例子

    四、AOP术语 - 切面(Aspect):定义一组相关或相互关联的通知和切点的模块化组件。 - 通知(Advice):在特定连接点执行的代码,例如日志记录、事务管理等。 - 切点(Pointcut):定义在何处应用通知的规则。可以是...

    aopalliance-1.0.jar及aopalliance源码

    `aopalliance-sources-1.0.0.jar`包含了AOP Alliance的源代码,这对于开发者理解和扩展AOP Alliance的功能至关重要。通过阅读源码,我们可以深入了解这些接口的具体实现和设计意图。例如,可以查看`...

    IOC和AOP深刻理解基础代码测试

    在Java Web开发中,IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是两个至关重要的概念,它们极大地提升了代码的灵活性和可维护性。Spring框架是实现这两种设计模式的...

    spring-boot aop

    5. **理解代理行为**:理解Spring AOP代理的工作方式很重要,因为这可能影响到何时以及如何调用通知。例如,直接通过`@Autowired`注入的bean之间的相互调用不会触发AOP通知,除非显式地通过代理引用进行调用。 6. *...

    让aop概念更好的理解

    ### 一、AOP 概念解析 **1.1 AOP 的定义** AOP (Aspect Oriented Programming) 即面向切面编程,是一种编程范式,它允许程序员将横切关注点(Cross-cutting Concerns)模块化。在 Spring 框架中,AOP 主要用于实现...

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    Android深入理解Aop

    阿拉神农博客《Android深入理解Aop》的PDF版,也可以在https://blog.csdn.net/innost/article/details/49387395 该网站中直接观看,也可以下载下来保存

    aopalliance

    对于AOPAlliance,javadoc详细阐述了各个接口和类的功能、用法和注意事项,是理解AOPAlliance工作原理和实际应用的关键。 五、实践应用 使用AOPAlliance,开发者可以在Spring 2.0中定义自己的拦截器或通知,实现...

    aop开发环境jar包

    在IT行业中,AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它旨在提高软件的模块化程度,...通过理解和掌握这些工具和概念,开发者可以更好地实践面向切面编程,使代码更加整洁,关注点更加分离。

    Spring5_AOP.pdf

    在AOP术语中,连接点通常指那些可以被增强操作的位置。 切入点(Pointcut)是匹配连接点的表达式。通过切入点,可以定义在哪些具体的连接点上应用通知,它是AOP中用于定义何时以及在哪里执行通知的模块。切入点的...

Global site tag (gtag.js) - Google Analytics