AspectJ 编程实战:从基础到高级应用
1. 处理横切关注点
在示例中,我们通过向控制台显示一条文本信息来记录对输出方法的调用,这类似于特定代码中的第 3 到 5 行的操作。当组件代码执行时,最终会调用 helloWorld()
方法,该方法调用是一个连接点。当执行此方法调用时,会将其与连接点声明以及用于分组连接点的任何切入点进行匹配,与使用该执行连接点的任何切入点关联的通知代码将被执行。
1.1 添加切面
目前开发的代码包含实现主要系统关注点的 Test
类、定义组件代码中特定连接点的切入点,以及在匹配连接点或连接点组合时执行的通知。切入点和通知包含实现先前定义的横切关注点所需的 AspectJ 代码。通过使用 aspect
关键字,我们可以将切入点和通知代码组合成一个单一的封装模块,以实现单个横切关注点。以下是代码示例:
public aspect TestAspect {
pointcut outputLog() : call(public void helloWorld());
before() : outputLog() {
System.out.println("Before Call");
}
}
1.2 编译和执行示例
编写完所有关注点后,需要编译并执行代码。具体步骤如下:
1. 可以将代码输入到名为 Test.java
和 TestAs