Spring - 如何控制多个 AOP 切面执行顺序?

众所周知,Spring 声明式事务是基于 AOP 实现的,那么,如果我们在同一个方法自定义多个 AOP,我们如何指定他们的执行顺序呢?

Spring - 如何控制多个 AOP 切面执行顺序?_第1张图片

三种解决方案

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 注解(推荐)

  • order 越小越先执行
@Component  
@Aspect  
@Slf4j  
@Order(1)  
public class MessageQueueAopAspect1{     
    ...  
}  

3、通过配置文件配置

  
        
            
            
            
 

你可能感兴趣的:(#,Spring,spring,java,aop,切面,顺序,多个,Order)