spring aop

package com.aspect;

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

@Aspect
@Component
public class UserAspect {

    //使用注解配置aop
    //<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
    //@Aspect
    //@Component
    
    
    @Before("execution(* com.service.UserServiceImpl.insert(..))")
    public void beforeAspect2(){
        System.out.println("权限验证2");
    }
    @After("execution(* com.service.UserServiceImpl.insert(..))")
    public void AfterAspect2(){
        System.out.println("记录日志2");
    }
    

    @Pointcut("execution(* com.service.UserServiceImpl.testParement(..)) && args(bb)")
    public void pointcut2(int bb){}

    //取参 前置通知
    @Before("pointcut2(bb)")
    public void beforeParement31(int bb){
        System.out.println("全局前置取参 " + bb);
    }
    @Before("pointcut2()")
    public void beforeAspect(){
        System.out.println("权限验证");
    }
    @After("pointcut2()")
    public void AfterAspect(){
        System.out.println("记录日志");
    }
    

    //全局 局部 返回值
    @Before("execution(* com.service.UserServiceImpl.testParement(..)) && args(bb)")
    public void beforeParement32(int bb){
        System.out.println("局部前置取参 " + bb);
    }

    @Pointcut("execution(* com.service.UserServiceImpl.testParement2(..))")
    public void pointcut2(){}

    @AfterReturning(value = "pointcut2()",returning = "str")
    public void afterParement(String str){
        System.out.println("后置传参"+str);
    }

}
我凝视这恒星,等待这那场风暴,我已经准备好了
原文地址:https://www.cnblogs.com/cheng5350/p/11574651.html