一个很好的答案链接:
aspect ADK 1.5 Notebook
我想引用的另一个链接:
回答
要声明方面优先级,可以使用特殊关键字
declare precedence : <Type1Pattern>,<Type2Pattern>…<TypeNPattern>;
在上面的例子中,aspect1 优先于aspect2,aspect2 又优先于aspect3 等等,直到aspectN。
“优先于”,我们的意思是“在之前执行”。通常,最高的方面首先执行。执行顺序还取决于通知的类型。
the aspect with highest precedence kicks in before the lowest precedence aspect for before() advice
the aspect with highest precedence kicks in after the lowest precedence aspect for after() advice
the aspect with highest precedence wraps around the lowest precedence aspect for around() advice
AspectJ 中的一个最佳实践是声明一个特殊方面,其任务只是声明其他方面的优先级。
示例:公共方面 MyAspectsOrdering { 声明优先级:around1, around2, before3, before4, after5; 声明优先级:Transactional*, around4; 声明优先级:*, before2; }