使用AspectJ和SpringAOP进行方面排序

时间:2019-01-16 22:46:32

标签: java aspectj spring-aop

我试图了解如何控制多个方面的执行顺序,更具体地说,是使用AspectJ @Aspect注释创建并在具有SpringAOP的系统中使用的方面。我发现了以下几个问题,但我希望得到一个更加系统和综合的答案。

  

How to order @Aspect

     

Ordering aspects with Spring AOP && MVC

使用AspectJ + SpringAOP,可以通过以下一种方法(可能还有我不知道的其他方法)将方面注入/编织到目标中:

  1. 自动代理(基于DI)
  2. 编译时编织
  3. 编译后编织
  4. 加载时编织

虽然执行顺序在多个方面,但我们可以指定使用:

    在AspectJ中定义的
  1. @DeclarePrecedence
  2. @在Spring中定义的订单
  3. 在Spring中定义的有序接口

因此,对于4种注入/编织方法中的每一种,都应遵守3种订购规格中的哪一种?另外,如果在特定情况下支持不止一种机制,是否可能引入顺序冲突?如果是,那么AOP行为是什么?

0 个答案:

没有答案