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); } }