众所周知,Spring 声明式事务是基于 AOP 实现的,那么,如果我们在同一个方法自定义多个 AOP,我们如何指定他们的执行顺序呢?
三种解决方案
1、通过实现 org.springframework.core.Ordered 接口
@Component
@Aspect
@Slf4j
public class MessageQueueAopAspect1 implements Ordered{@Override
public int getOrder() {
// TODO Auto-generated method stub
return 2;
}
}
2、通过 @Order 注解(推荐)文章来源:https://www.toymoban.com/news/detail-794011.html
- order 越小越先执行
@Component
@Aspect
@Slf4j
@Order(1)
public class MessageQueueAopAspect1{
...
}
3、通过配置文件配置文章来源地址https://www.toymoban.com/news/detail-794011.html
<aop:config expose-proxy="true">
<aop:aspect ref="aopBean" order="0">
<aop:pointcut id="testPointcut" expression="@annotation(xxx.xxx.xxx.annotation.xxx)"/>
<aop:around pointcut-ref="testPointcut" method="doAround" />
</aop:aspect>
</aop:config>
到了这里,关于Spring - 如何控制多个 AOP 切面执行顺序?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!