Spring AOP

介绍AOP
    面向切面编程, 一种思想, 对某一类事情的集中处理
        突然理解切面的含义啦~~比如说一个叫山海关的收费站~okkk无论你从哪里来,无论你要干什么,只要你经过这个收费站,你就要被拦截, -- 这就是一个切面~~~
    AOP 是思想; Spring AOP 是框架, 提供了一种对 AOP 思想的实现 ->IoC和DI

AOP 组成
    切面: 在程序中就是一个处理某方面具体问题的一个类, 类里面包含了很多方法, 这些方法就是切点和通知
    切点: 用来进行主动拦截的规则(配置)
    通知: 程序中被拦截请求触发的具体动作 -> 通知中要实现的具体业务代码
        前置通知: 执行目标方法之前执行
        后置通知: 执行目标方法之后执行
        异常通知: 执行目标方法,出现异常, 执行通知
        返回通知: 执行目标方法返回数据, 执行
        环绕通知: 执行目标方法周期范围内, 都可以执行的方法
    连接点: 可能会触发的 AOP 规则的所有点

 

Spring AOP 的实现
    1) 添加 Spring AOP 框架支持
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
    2) 定义 切面, 切点
         // 此类为一个切面
            @Aspect
         // 随框架的的启动而启动
            @Component
        // 定义切点 配置拦截规则
                @Pointcut("execution(* com.example.demo.controller.UserController.*(..))")
        // 空方法 起标识作用->下面通知方法 具体指哪一个切点
            public void pointcut(){}
    3) 定义 通知
        @Before("pointcut()")
            public void beforeAdvice(){
                    System.out.println("执行了前置通知");
                }
        @After("pointcut()")
            public void afterAdvice(){
                    System.out.println("执行了后置通知");
                }
        @Around("pointcut()")
            public Object arroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
                    System.out.println("执行环绕方法之前~~");
                    Object obj = null;
                    obj = joinPoint.proceed();
                    System.out.println("执行环绕方法之后~~");
                    return obj;
                }

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值