AOP = 我们要在一些方法执行前/执行后/抛出异常时进行一些额外的操作。
为了完成这件事情,需要告诉程序:
1.What? 哪些方法需要进行额外的操作。
2.How? 什么时候进行额外操作?额外操作要做什么?
AOP有一堆令人晦涩的术语,下面按照以上两步来进行解释:
第一步:
我们通过定义一个表达式(Pointcut)来告诉程序,我们需要对那些方法增加额外的操作。
通过这个表达式(Pointcut),我们得到了那些需要增强的方法(Joinpoint)。
第二步:
我们需要告诉程序:这些方法(Joinpoint)需要做怎样的增强(Advice):
1.什么时候进行额外操作?(执行前/执行后/抛出异常时)。
2.额外操作要做什么?
我们把两个步骤定义到一个地方(Aspect).
这两个步骤涉及到的被修改对象我们叫做(Target Object).
完成以上操作的动作我们叫做(Weaving)
下面总结一下:
需要我们关心的:
Pointcut: 一个表达式,用来找出需要被增强的方法。
Advice: 这个方法要如何被增强。
概念性的:
Joinpoint: 通过Pointcut找出来的结果。
Aspect: 整个AOP规则的定义。
Target Object: 被修改了的Objects。
Weaving: 执行AOP的过程。
我想这可以帮助初学者理解AOP,当然,我也是初学者,说的不对的地方,欢迎拍砖
分享到:
相关推荐
Spring 中的 AOP 术语可能会使人感到困惑,但本文将对 AOP 术语进行通俗的解释。 关注点(Concern) 关注点是我们要考察或解决的问题。如订单的处理、用户的验证、用户日志记录等都属于关注点。关注点可以分为...
下面将详细解释Spring中的Aop代理。 1. AOP的基本概念: AOP的核心思想是将关注点分离,即将横切关注点(如日志、事务)与业务逻辑分离,使得代码更加模块化,易于维护。切面是包含切点和通知的模块,切点定义了...
在编程领域,特别是面向切面编程(Aspect Oriented Programming,简称AOP)中,通知(Advice)是核心概念之一。AOP旨在将关注点分离,让业务逻辑与系统服务(如日志、事务管理等)解耦。在这个过程中,通知扮演了在...
在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...
AOP(Aspect Oriented Programming,面向切面编程)是软件开发中的一个重要概念,它扩展了传统的面向对象编程,使得程序员可以将关注点分离到不同的“切面”中,如日志、事务管理、性能监控等。Spring框架是AOP的一...
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-...
四、AOP术语 - 切面(Aspect):定义一组相关或相互关联的通知和切点的模块化组件。 - 通知(Advice):在特定连接点执行的代码,例如日志记录、事务管理等。 - 切点(Pointcut):定义在何处应用通知的规则。可以是...
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在减少代码的重复性和增强可维护性,特别是在处理系统中的横切关注点时。这些关注点,如日志、事务管理、安全检查等,往往分散在系统的各个部分...
开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具...
面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,提高软件的模块化程度。AOP的核心是切面,它封装了横切关注点,如日志、事务管理、性能监控等,使得这些功能可以独立于主...
**AOP Alliance简介** AOP Alliance是一个开源项目,它的全称是Aspect Oriented Programming(面向切面编程)Alliance,是Java平台上的一个接口集合,为面向切面编程的实现提供了一个统一的API。这个库的主要目的是...
Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。这个"spring aop jar 包"包含了实现这一功能所需的类和接口,...
在IT行业中,AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它旨在提高软件的模块化程度,将关注点分离。在Java世界里,AOP常用于处理日志、事务管理、权限检查等横切关注点。当我们谈到“AOP...
在Java应用中,aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的...
AOP的核心概念和术语包括连接点、切入点、通知(增强)、切面等。 连接点(Join point)是程序执行过程中的某个特定点,例如方法的调用或异常的抛出。在AOP术语中,连接点通常指那些可以被增强操作的位置。 切入点...
它定义了一些基础的AOP接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口被广泛应用于诸如AspectJ、Spring AOP等AOP框架中。 二、AOPAlliance在Spring 2.0中的作用 ...
Spring AOP实现方法之一:CGLIB 实现AOP功能
《AOP Alliance 1.0:面向切面编程的核心接口》 在软件开发领域,AOP(Aspect-Oriented Programming,面向切面编程)是一种重要的编程范式,它旨在提高代码的可重用性和模块化程度,使得关注点分离得以更好地实现。...
面向切面编程(AOP)是一种编程范式,旨在将横切关注点(如日志、安全等)与业务逻辑分离,从而提高模块化。AOP通过预定义的“切面”对横切关注点进行模块化,从而可以在不修改业务逻辑代码的情况下增加新功能。动态...