AOP切面编程

  1. 添加pom依赖

    <dependency>    <groupId>org.spring work.boot</groupId>    <artifactId>spring-boot-starter-aop</artifactId></dependency>
  2. 编写切面类

    /** * @author wsyjlly * @create 2019.06.14 - 17:23 **/@Aspectpublic class LogAspect {    @Pointcut("execution(* cn.wsyjlly.controller.*.*(..))")    public void pc(){}    @Before(value="pc()")    public void before(JoinPoint jp){        String name = jp.getSignature().getName();        System.out.println(name+"方法开始执行...");        System.out.println(name+"——————————————————————————————");    }    @After(value = "pc()")    public void after(JoinPoint jp){        String name = jp.getSignature().getName();        System.out.println(name+"——————————————————————————————");        System.out.println(name+"方法执行结束...");    }    @AfterReturning(value = "pc()" , returning = "result")    public void afterReturning(JoinPoint jp,  result){        String name = jp.getSignature().getName();        System.out.println(name+"方法返回值为:"+result);    }    @AfterThrowing(value = "pc()" , throwing = "e")    public void afterThrowing(JoinPoint jp,Exception e){        String name = jp.getSignature().getName();        System.out.println(name+"方法抛出异常:"+e.getClass().getName());    }    @Around("pc()")    public   around(ProceedingJoinPoint pjp) throws Throwable{        return pjp.proceed();    }}
收藏 打印