使用springboot注解实现aop也太简单了吧
程序员文章站
2022-03-26 21:28:52
以下操作默认已经搭建好了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);
}
}
前置通知执行结果
前置通知、后置通知、返回通知,同时拦截同一个方法,执行结果。
除此之外还有异常通知、环绕通知,其中异常通知。
异常通知方法只在连接点方法出现异常后才会执行,否则不执行
环绕通知比较牛:环绕通知方法可以包含上面四种通知方法,环绕通知的功能最全面
ps:每种通知的示例、以及切点的两种方式代码当中全都有示例,并有详细的注释
代码下载:https://306t.com/file/28095605-453327460
提取码:123456
本文地址:https://blog.csdn.net/weixin_42440768/article/details/107358852
下一篇: 详解介绍java虚拟机中对象访问(图)