• 相同切入点的抽取


    1.相同切入点的抽取

    抽取前:

    package com.spring.spring5.annotaion;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.*;
    import org.springframework.stereotype.Component;
    
    //增强的类
    @Aspect//表示生成代理对象
    @Component
    public class UserProxy {
    
        //前置通知
        @Before(value = "execution(* com.spring.spring5.annotaion.User.add(..))")//表示作为前置通知
        public void before(){
            System.out.println("Before......");
        }
    
        //最终通知,不管有没有异常在方法之后都执行
        @After(value = "execution(* com.spring.spring5.annotaion.User.add(..))")
        public void after(){
            System.out.println("After......");
        }
    
        //后置通知(返回通知),方法无异常结束时执行
        @AfterReturning(value = "execution(* com.spring.spring5.annotaion.User.add(..))")
        public void afterReturning(){
            System.out.println("AfterReturning......");
        }
    
        //异常通知,add()有异常时才会执行
        @AfterThrowing(value = "execution(* com.spring.spring5.annotaion.User.add(..))")
        public void afterThrowing(){
            System.out.println("AfterThrowing......");
        }
    
        //环绕通知,在方法之前和之后执行
        @Around("execution(* com.spring.spring5.annotaion.User.add(..))")
        public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
            System.out.println("Around之前......");
            proceedingJoinPoint.proceed();
            System.out.println("Around之后......");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    抽取后:

    package com.spring.spring5.annotaion;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.*;
    import org.springframework.stereotype.Component;
    
    //增强的类
    @Aspect//表示生成代理对象
    @Component
    public class UserProxy {
        //相同切入点抽取
        @Pointcut("execution(* com.spring.spring5.annotaion.User.add(..))")
        public void pointdemo() {
    
        }
    
        //前置通知
        @Before(value = "pointdemo()")//表示作为前置通知
        public void before(){
            System.out.println("Before......");
        }
    
        //最终通知,不管有没有异常在方法之后都执行
        @After(value = "pointdemo()")
        public void after(){
            System.out.println("After......");
        }
    
        //后置通知(返回通知),方法无异常结束时执行
        @AfterReturning(value = "pointdemo()")
        public void afterReturning(){
            System.out.println("AfterReturning......");
        }
    
        //异常通知,add()有异常时才会执行
        @AfterThrowing(value = "pointdemo()")
        public void afterThrowing(){
            System.out.println("AfterThrowing......");
        }
    
        //环绕通知,在方法之前和之后执行
        @Around("pointdemo()")
        public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
            System.out.println("Around之前......");
            proceedingJoinPoint.proceed();
            System.out.println("Around之后......");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    两者效果一致

  • 相关阅读:
    Vue3.0-如此简单的setup
    nginx重写与防盗链
    【前端工程化】使用Pinia代替vuex,做为vue项目的状态管理工具
    Prometheus 采集vCenter7监控数据
    多线程(基础)
    Sentinel整合OpenFeign对远程调用限流并降级
    Redis夺命十二问,差点没抗住
    彻底玩转Java注解和反射
    Excel数据可视化—波士顿矩阵图【四象限图】
    2.1数据的表示和运算--进位制
  • 原文地址:https://blog.csdn.net/weixin_46245201/article/details/125524030