亲宝软件园·资讯

展开

Spring AOP

亚太地区百大最帅面孔第101名 人气:0

什么是Spring AOP

为什么要用AOP?

AOP的组成

Spring AOP的实现

导入依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
 </dependency>

定义切面和切点

@Component
@Aspect //定义切面
public class UserAspect {
    @Pointcut("execution(* com.example.demo.controller.UserController.*(..))")
    public void pointcut(){}
}

定义通知Advice(5类)

@Component
@Aspect //定义切面
public class UserAspect {
    @Pointcut("execution(* com.example.demo.controller.UserController.*(..))")
    public void pointcut(){}
    // 前置通知(要带一个括号)
    @Before("pointcut()")
    public void doBefore(){
        //业务代码
        System.out.println();
        System.out.println("执行了前置通知");
        System.out.println();
    }
}
 @Around("pointcut()")
    public Object doAround(ProceedingJoinPoint joinPoint){
        Object result = null;
        //执行前置业务代码
        System.out.println("执行环绕通知的前置方法");
        try {
            //执行(拦截的)业务方法
            result = joinPoint.proceed();
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
        //执行后置业务代码
        System.out.println("执行环绕通知的后置方法");
        return result;
    }

加载全部内容

相关教程
猜你喜欢
用户评论