SpringBoot自定义注解(基于SpringAOP实现)
在网上看到好多关于此话题的博客要么资料不全,要么过于复杂,导致新手很难直接的理解!所以自己上手整理一个简单的demo放于git,有想用的在博客末尾直接点击下载即可直接运行使用!
一、JoinPoint的用法
JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,可以获取到封装了该方法信息的JoinPoint对象!
| 方法名 | 作用 |
|---|---|
| getSignature(); | 获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息 |
| getArgs(); | 获取传入目标方法的参数对象 |
| getTarget(); | 获取被代理的对象 |
| getThis(); | 获取代理对象 |
二、ProceedingJoinPoint对象
ProceedingJoinPoint对象是JoinPoint的子接口,该对象只用在@Around的切面方法中使用
Object proceed() throws Throwable //执行目标方法
Object proceed(Object[] var1) throws Throwable //传入的新的参数去执行目标方法
三、实现Demo简述
1、首先需要引入Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>2.5.1</version>
</dependency>
2、定义一个自己使用的注解(注意定义类型)

简单说下其中注解的含义:
| 名称 | 含义 |
|---|---|
| @Documented | 指明修饰的注解 |
| @Retention | 指明修饰的注解的生存周期,即会保留到哪个阶段 |
| @Target | 指明了修饰的这个注解的使用范围,即被描述的注解可以用在哪里 |
| 具体的取值可以点进源码稍微看下就知道了很简单! |
3、定义一个切面类

4、定义一个controller 供测试使用

完成上述步骤即可实现基于springAOP的自定义注解的demo!!!!
附上实现demo完整java代码Git地址!!!
地址(简单demo): https://gitee.com/zhangwu2020/springboot-annotation.git(克隆至本地后根据README.md提示即可运行!!)
地址(简单项目应用): https://gitee.com/zhangwu2020/springboot-annotation-demo.git(克隆至本地后根据README.md提示即可运行!!)
本篇完结
1万+

被折叠的 条评论
为什么被折叠?



