Classworking 工具箱: 将 aspect 放到 werk 中
2010-03-18 00:00:00 来源:WEB开发网AspectWerkz 基础
AspectWerkz 网站提供了大量文档和使用示例,以及关于使用 AspectWerkz 的文章的链接。我不准备在这里重复这些内容,但是我将简要介绍我认为最重要的概念:pointcut、aspect 和 advice。
pointcut 基本上只是一个中断应用程序执行的(由源代码定义的)“正常” 流程并做一些不同的事情的地方。AspectWerkz 支持与 Java 代码结构相关的许多类型的 pointcut,包括方法调用或者执行、字段 get/set 和异常处理器执行,以及组合(包括特定执行路径中的代码)。
用 AspectWerkz 术语来说,一个 aspect 就是一个 Java 类,它可以作为交叉关注(crosscutting concern)的目标。让一个类成为 aspect 不需要实现特殊的接口,但是需要特定的方法签名以使类作为一个 aspect 被访问。一般来说,希望 aspect 类在标准应用程序类层次结构之外,因为可能只是通过 AspectWerkz 框架使用它们,不过,对于它们所在的位置同样没有特殊要求(在运行时类路径中除外)。
advice 是 aspect 类中的一个方法,在 pointcut 处用它来做“某些不同的事件”。 advice 的默认方法签名接受一个参数,该参数提供关于中断的 pointcut 的信息。清单 1 显示了一个 aspect 类的例子,它定义了在方法调用上,将被用作前 advice 和后 advice 的两个方法。
清单 1. 一个简单的 advice 类及其 advice 方法
package com.sosnoski.aspectwerkz;
public class TraceAspect
{
public void beforeMethod(JoinPoint join) {
System.out.println("Entering method");
}
public void afterMethod(JoinPoint join) {
System.out.println("Leaving method");
}
}
Tags:Classworking 工具箱 aspect
编辑录入:爽爽 [复制链接] [打 印]- ››AspectJ 和模仿对象的测试灵活性:用“test-only”...
- ››Classworking 工具箱: 注释(Annotation)与 ASM
- ››Classworking 工具箱: ASM classworking
- ››Classworking 工具箱: 泛型与 ASM
- ››Classworking 工具箱: 分析泛型数据结构
- ››Classworking 工具箱: 将 aspect 放到 werk 中
- ››AspectJ 和模仿对象的测试灵活性
- ››Aspectwerkz 2.0开发企业AOP快速入门
- ››Classworking工具箱:反射泛型
- ››Classworking 工具箱: 反射泛型
- ››AspectJ: 通往AOSD之路的最佳军火
更多精彩
赞助商链接