AspectJ:开发中的实用指南
1. Aspect 优先级与访问控制
在开发过程中,我们会遇到不同方面(Aspect)之间的优先级问题。例如,新的 VectorLogging
方面会主导 VectorTiming
方面。当执行特定应用时,在匹配 bubbleSort()
方法时, VectorLogging
方面会优先于 VectorTiming
方面。若我们仍需要一些计时信息,那么在 before
和 after
通知代码块中,都要对 VectorTiming
方面执行 aspectOf()
方法。该方法会根据特定方面(这里是 VectorTiming
)尝试查找与当前连接点相关联的方面对象。若找到该对象,代码会调用其 getTime()
方法。
aspectOf()
方法有两种不同的签名,这与方面的实例化方法有关:
- aspectOf()
:用于单例和 percflow/percflowbelow
。
- aspectOf(object)
:用于 perthis
和 pertarget
。
由于 VectorTiming