AOP 的元素:连接点
连接点是在执行过程中明确定义的点,可以在这些点上应用横切代码。可用的连接点取决于所使用的特定 AOP 框架或者工具。AspectJ 拥有丰富的、动态的连接点模型。
使用 AspectJ 时,在下述情况下可有连接点:
调用一个方法
执行一个方法
调用一个异常处理程序
执行一个异常处理程序
调用一个构造函数
执行一个构造函数
读取一个字段
写入一个字段
注意调用一个方法和执行一个方法的区别。与调用一个方法关联的连接点可以访问实际调用这个方法之前的执行上下文信息。与执行一个方法关联的连接点可以访问方法正文内部的执行上下文信息。
AOP 元素:切入点
要指定在什么地方和什么时候应用自己的横切代码,需要声明切入点。切入点选择一组连接点
call(signature) 调用指定的方法或者构造函数时选择连接点
execute(signature) 执行指定的方法或者构造函数时选择连接点
get(signature) 读取指定字段时选择连接点
set(signature) 写入指定的字段时选择连接点
handler(type-pattern) 执行与 Throwable 类型样式相关联的异常处理程序时选择连接点
AOP 元素:通知
通知 将要应用的代码与声明的切入点所选择的连接点联系在一起。将要执行的代码放到通知中,然后用匹配连接点指定什么时候要执行它。
before() 在所选的连接点之前执行代码
after() 在所选的连接点之后执行代码
around() 在连接点处执行代码,允许根据需要结束或者跳过连接点的执行
受通知影响的代码称为 advised,通常是在匹配的连接点处。
AOP 元素:类型间声明
AspectJ 可以在现有的 Java 类或者类型之中添加新成员 —— 方法和字段。
这些包含在方面中的附加声明称为类型间声明。对于受其影响的类的用户,这些新声明的成员看起来就像由原来的类或者类型直接实现一样。
AOP 元素:方面
在使用 AspectJ 时,Java 编程语言被方面定义扩展了。就像定义一个类一样定义方面。
方面使您可以绑定:
切入点
通知
类型间声明
像 Java 类一样,方面可以有字段和方法(静态或者非静态)。可以创建抽象方面,就像类一样。还可以扩展类或方面,以创建新方面
链接:
https://www6.software.ibm.com/developerworks/cn/education/java/j-aopintro/tutorial/section3.html
分享到:
相关推荐
4. **使用第三方库**:像`Butter Knife`这样的库,虽然主要目的是视图注入,但其实现方式也包含AOP元素。另外,`AndroidAnnotations`库提供了一些注解,可以简化Android开发中的常见任务,如生命周期管理和事件处理...
在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...
Aspects则是AspectJ中的核心概念,它代表了关注点的封装单元,包含了切点(定义关注点发生的位置)、通知(执行的操作)以及连接点(切点实际触发的地方)等元素。AspectJ RT(Runtime)库是AspectJ运行时环境,包含...
aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的核心元素。...
使用`<aop:before>`、`<aop:after>`、`<aop:after-returning>`、`<aop:after-throwing>`和`<aop:around>`元素定义不同类型的的通知,例如: ```xml <aop:aspect id="loggingAspect" ref="loggingAspectBean"> <aop...
`Advice` 是AOP框架中用于定义切面逻辑的关键元素,它允许开发者定义何时以及如何增强应用的行为。 AOP Alliance 1.0 的这些接口和概念被广泛应用于各种AOP框架中,使得开发者可以跨框架地复用和组合拦截器,提高了...
在Spring的XML配置文件中,我们可以创建一个`<aop:config>`元素,并在其内部定义`<aop:advisor>`来创建Advisor。Advisor的`advice-ref`属性用于指定通知bean的ID,`pointcut-ref`属性用于指定切点bean的ID。 2. ...
- `<aop:before>`、`<aop:after>`、`<aop:around>`、`<aop:after-returning>` 和 `<aop:after-throwing>`:这些元素分别对应不同的通知类型,用于配置通知的行为。 - `<aop:pointcut>`:定义切入点,通过`id`属性...
在 Spring AOP 中,事务管理切面是通过 `<aop:config>` 元素来配置的。该元素用于定义一个切面,并指定该切面所关心的点cuts。在上面的配置文件中,我们可以看到 `<aop:config>` 元素用于定义一个名为 ...
在Spring XML配置中,我们可以使用`<aop:config>`元素来定义切点表达式,然后使用`<aop:aspect>`元素来声明切面,并将通知方法与切点关联起来。此外,还可以使用注解驱动的配置,通过`@EnableAspectJAutoProxy`注解...
这些接口允许开发者定义切面、连接点、通知等关键元素,进而实现跨切面的代码管理。 1. Advisor接口:Advisor是AOP的核心概念,它封装了Pointcut(切入点)和Advice(通知)。一个Advisor可以识别何时应用特定的...
1. `<aop:config>`:这是AOP配置的根元素。 2. `<aop:aspect>`:定义一个切面,可以包含多个通知和切点。 3. `<aop:pointcut>`:定义一个切点表达式,匹配特定的方法或类。 4. `<aop:before>`、`<aop:after>`、`<aop...
在XML配置中,我们通常会定义一个`<aop:config>`元素来开启AOP支持,并在其中定义切面。切面由`<aop:aspect>`元素表示,其中可以包含通知的配置。例如: ```xml <aop:config> <aop:aspect id="loggingAspect" ref=...
在Spring AOP中,`aop:aspect`是XML配置中定义一个切面的元素,它允许我们将关注点(如日志、事务管理等)与业务逻辑分离,实现代码的解耦。 面向切面编程是一种编程范式,旨在提高代码的模块化程度,通过将横切...
在Spring AOP中,切面由通知(Advice)、连接点(Join Point)、切点(Pointcut)、引入(Introduction)和织入(Weaving)等元素组成。 二、通知(Advice) 通知定义了在特定连接点上执行的行为。Spring支持五种...
它具备高分辨率和丰富的色彩,可以显示图形、文本、按钮等多种元素,帮助操作员实时监控和控制生产过程。 二、主要功能 1. 图形化界面:AOP30支持创建自定义图形界面,包括图表、按钮、滑块等,使操作更加直观。 2....
它定义了一些核心的AOP概念,如拦截器(Interceptor)、通知(Advice)和切入点(Pointcut),这些都是AOP编程中的关键元素。通过提供统一的接口,AOP Alliance使得开发者可以在不关心具体实现的情况下,将AOP特性...
2. **基于XML的AOP配置**:在XML配置文件(如`spring-aop.xml`)中,你可以定义 `<aop:config>` 和 `<aop:aspect>` 元素来声明切面,然后使用 `<aop:pointcut>` 来定义切点,最后用 `<aop:before>`、`<aop:after>` ...
3. 配置切面:在Spring配置文件中,使用`<aop:aspect>`元素或通过`@Component`注解将切面类加入到Spring容器。 4. 应用通知:在通知方法中编写需要在特定连接点执行的逻辑。 六、Maven_01 Maven是Java项目管理和...
在实际应用中,我们会在`<bean>`元素中定义切面类,并在`<aop:config>`中通过`<aop:aspect>`元素引用它,然后定义相应的通知和切入点。例如: ```xml <aop:config> <aop:aspect id="loggingAspect" ref="logging...