多个增强类对同一个方法进行增强

设置增强类优先级

在增强类上添加注解@Order(数字类型值),数字越小,优先级越高

package com.xxx.spring.aop.aopanno;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

//增强的类
@Component
@Aspect
@Order(1)
public class UserProxy {

    @Pointcut("execution(* com.xxx.spring.aop.aopanno.User.add(..))")
    public void pointUser(){

    }

    //前置通知
    @Before("pointUser()")
    public void before(){
        System.out.println("user before...");
    }

    
}

 

package com.xxx.spring.aop.aopanno;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Aspect
@Order(3)
public class PersonProxy {

    @Before("execution(* com.xxx.spring.aop.aopanno.User.add(..))")
    public void before(){
        System.out.println("person before...");
    }
}

 

执行结果

 

posted @ 2023-02-12 19:42  Mr_sven  阅读(14)  评论(0编辑  收藏  举报