如何更改Aspect顺序?

时间:2018-06-14 10:42:29

标签: java spring-aop

我有两个方面。

@Aspect
@Order(Ordered.LOWEST_PRECEDENCE)
public class Aspect1{}

@Aspect
public class Aspect2{}

当我运行应用程序时,Aspect1会在Aspect2之前执行。我对定义了Aspect 2的项目没有任何控制权。我可以在Aspect1中进行更改。这些方面都有afterThrowing建议。 您能否建议我如何在Apsect 1之前运行Aspect2?

2 个答案:

答案 0 :(得分:0)

您可以覆盖return firstly { self.requestClient.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON() }.compactMap { data, rsp in return data as? JSON } 并实施Aspect2界面。 您可以覆盖该方法并返回您想要设置的顺序 -

"org.springframework.core.Ordered"

答案 1 :(得分:0)

我通过更改Aspect1的切入点定义来解决它。现在,切入点是在Aspect 2中声明的方法上定义的。这使得Aspect2首先运行然后它抛出Aspect1捕获的异常。