环绕通知获取方法入参的方法
Object[] args = joinPoint.getArgs();
指定拦截带有注解的写法
@Pointcut("@annotation(com.springboot_aop.abc)") public void homeWorkPointcut() { System.out.println(); }
统一异常处理,aop
import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;import java.util.HashMap;import java.util.Map; @Aspect @Componentpublic class TestAop { /** * 定义切入点 */ @Pointcut("execution(* com.springboot_aop.controller.*.*(..))") public void homeWorkPointcut() { System.out.println(); } @Before("homeWorkPointcut()") public void test01() { System.out.println("执行前///////"); } @After("homeWorkPointcut()") public void test02() { System.out.println("执行后////"); } @Around("homeWorkPointcut()") public Object deAround(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("环绕前/////"); try { return joinPoint.proceed(); }catch (Throwable e){ Mapdata = new HashMap<>(); data.put("code","500"); data.put("msg",e.getMessage()); e.printStackTrace(); return data; } } }