springboot注解式AOP通过JoinPoint获取参数 学习笔记
springboot注解式AOP通过JoinPoint获取参数 学习笔记
之前开发时,需要获取切点注解的参数值,记录一下
切面注解 :
@Aspect – 标识为一个切面供容器读取,作用于类
@Pointcut – (切入点):就是带有通知的连接点
@Before – 前置
@AfterThrowing – 异常抛出
@After – 后置
@AfterReturning – 后置增强,执行顺序在@After之后
@Around – 环绕
1.相关maven包
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>
2.自定义一个注解
import java.lang.annotation.*;@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Action {String value() default "list";
}
3.定义切面类
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;@Aspect
@Component
public class ActAspect {@AfterReturning("@annotation(包名.Action)")public void afterReturning(JoinPoint point){// 获取切入点方法名String methodName = point.getSignature().getName();// 获取注解中的参数值MethodSignature methodSignature = (MethodSignature)point.getSignature();Method method = methodSignature.getMethod();// 获取注解Action Action annotation = method.getAnnotation(Action.class);// 获取注解Action的value参数的值String value = annotation.value();// 获取切点方法入参列表Object[] objArray = point.getArgs();// 下面代码根据具体入参类型进行修改List<String> list = new ArrayList<>();for (Object obj: objArray) {if(obj instanceof Collection){list = (List<String>) obj;}}}}
参考博客:
https://blog.csdn.net/zhanglf02/article/details/78132304
https://www.tpyyes.com/a/javaweb/181.html
https://blog.csdn.net/qq_35098526/article/details/88397657
springboot注解式AOP通过JoinPoint获取参数 学习笔记相关推荐
- 十、springboot注解式AOP(@Aspect)统一日志管理
springboot注解式AOP(@Aspect)统一日志管理 简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功 ...
- ihtml2document能不能根据id获取dom_JavaScript学习笔记(十三)-- DOM(上)
DOM(上) DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 移除一个元素 创建一个元素 向页面里 ...
- python读取html内容 dom获取_python学习笔记十三 JS,Dom(进阶篇)
JS介绍 JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用:JavaScript 是因特网上最流 ...
- 推荐系统三十六式(刑无刀)学习笔记(三)
03 | 这些你必须应该具备的思维模式 今天主要认识两方面的内容:一个是重新认识推荐系统关键元素的重要性,另一个是要建立起两个思维模式. 对关键元素重要性的认识 要开发一个推荐系统产品,有这么四个关键 ...
- 获取编译学习笔记 (十三)—— 外部中断
疯狂暑期学习 汇编入门学习笔记 (十三)-- 外中断 參考: <汇编语言> 王爽 第15章 1.外中断信息 外中断分为可屏蔽中断和不可屏蔽中断 可屏蔽中断 先看看内中断所引发的中断过程 ...
- 推荐系统三十六式(刑无刀)学习笔记(一)
你真的需要个性化推荐系统吗? 个性化推荐已经从一个非常小众的方向,演变成了今天互联网产品的常见"配件".再加上一些以"个性化"为品牌卖点的互联网产品的成功,也给 ...
- 推荐系统三十六式(刑无刀)学习笔记(四)
04 | 画鬼容易画人难:用户画像的"能"和"不能" 做好一个推荐系统,总共分为三步:1.认识每一个用户:2.给他推荐他感兴趣的东西:3.坐等各项指标上升. 什 ...
- SpringBoot 注解方式快速整合Mybatis
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:yizhiwazi www.jianshu.com/p/82 ...
- NASM学习(二)——从命令行获取参数
NASM学习(二)--从命令行获取参数 学习汇编的目的是增强自己对硬件体系的熟悉与编译.链接等等阶段的熟悉 上文我们已经学会了怎么使用NASM来打印HELLO,WORLD了,总结一下,主要是使用系统调 ...
- JavaEE——Spring学习笔记03【AOP开发】
JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...
最新文章
- leecode---46---数组,dfs---求出数组的所有组合
- c#中在规定时间弹出窗体
- 线程池ExcutorThreadPool的运行原理
- linux下wget命令(下载文件命令)
- Android 6.0 7.0 8.0 一个简单的app内更新版本-okgo app版本更新
- 今天的方灵起床了的飞鸽传书2011
- raspberry pi_前5名:替代密码,Raspberry Pi进入太空等等
- 湖南师范大学数学与计算机学院郭水霞,湖南师范大学数学与计算机科学学院2013备考手册...
- Pandas入门教程(六)
- stardict词典全集
- 计算机控制鼠标,键盘控制鼠标,详细教您如何使用键盘来控制鼠标
- 阿里云域名怎么注册和使用(新手教程)
- 用户登录页面以及后台方法、拦截器
- 第二周:java异常和常用类 容器
- 图片的居中定位和按钮定位
- php网站mercury安装,水星路由器怎么安装?Mercury无线路由器安装示意图解
- 关于电子科技大学学生阅读情况调查报告
- 0x80073712_更新系统发生0x80073712错误,怎么解决?
- 关于组培的一些想法(求知解惑),多肉科普
- 02-nation.sql
热门文章
- Asp.net页面传值
- 如何设置高度为1的分隔线
- Java- String类概述
- Xamarin.Forms 仿照京东搜索记录控件
- 30. Child Labor Problem and Its Solution 童工问题及解决方法
- filebeat+redis+logstash+elasticsearch+kibana搭建日志分析系统
- 隐马尔可夫模型HMM(一)
- 在C#中使用SQL语句什么情况需要使用‘单引号’和“双引号”
- Javascript中的执行环境及作用域
- EXECUTE IMMEDIATE oracle介绍