spring boot AOP

aop是spring的两大功能模块之一,功能非常强大,为解耦提供了非常优秀的解决方案。

现在就以springboot中AOP的使用来了解一下AOP
导入对AOP的依赖

  
    org.springframework.boot  
    spring-boot-starter-aop  
 

首先创建一个切面类,通过@Aspect来定义,为了使该类被正确被spring加载,必须增加@Component

@Aspect
@Component
public class LogAspect {
    /**
     * 定义需要切入的类或者方法
     */
    @Pointcut("execution(public * com.zy.springboot.demo.controllers.*.*(..))")
    public void webLog() {
        System.out.println("web log executing");
    }

    /**
     * 执行切面类前执行
     *
     * @param joinPoint
     */
    @Before("webLog()")
    public void doBefore(JoinPoint joinPoint) {
    }

        /**
     * 执行结束后
     * @param joinPoint
     */
    @After("webLog()")
    public void doAfter(JoinPoint joinPoint) {
        System.out.println("after web log");
    }

    @AfterReturning(returning = "ret", pointcut = "webLog()")
    public void afterReturning(Object ret) {
        System.out.println(ret);
    }
}

执行顺序:
after > before > afterReturning

你可能感兴趣的:(spring boot AOP)