欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用springboot注解实现aop也太简单了吧

程序员文章站 2022-07-10 21:30:03
以下操作默认已经搭建好了springboot项目1、导入aop依赖 org.springframework.boot spring-boot-starter-aop 2.0.5.RELEASE

以下操作默认已经搭建好了springboot项目
1、导入aop依赖

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

2、新建一个control接口

@RestController
public class TestRest {

    @GetMapping("/test")
    public String test(@RequestParam String name,
                       @RequestParam String sex){
        return "姓名:"+name+",性别:"+sex;
    }
}

3、新建一个aop接口
这里切点只演示了通过注解拦截的这一种方式,通知只演示了@Before,其余的拦截方式代码里面都有,感兴趣的小伙伴可以下载代码执行一下

@Aspect
@Component
public class TestAOP {

    //切点
   @Pointcut("@annotation(org.springframework.web.bind.annotation.GetMapping)")
    public void pointcutMethod(){}

    //切面
    @Before("pointcutMethod()")
    public void cuttingMethod(JoinPoint joinPoint){
        Object[] args = joinPoint.getArgs();//获取参数值列表
        //根据下标获取入参,参数顺序与切点方法一致
        Object name = args[0];
        Object sex = args[1];
        System.out.println("姓名:"+name+",性别:"+sex);
    }

}

前置通知执行结果
使用springboot注解实现aop也太简单了吧

前置通知、后置通知、返回通知,同时拦截同一个方法,执行结果。
使用springboot注解实现aop也太简单了吧

除此之外还有异常通知、环绕通知,其中异常通知。
异常通知方法只在连接点方法出现异常后才会执行,否则不执行
环绕通知比较牛:环绕通知方法可以包含上面四种通知方法,环绕通知的功能最全面

ps:每种通知的示例、以及切点的两种方式代码当中全都有示例,并有详细的注释
代码下载:https://306t.com/file/28095605-453327460
提取码:123456

本文地址:https://blog.csdn.net/weixin_42440768/article/details/107358852