通过AOP获取方法参数名的方法详解

【springboot】org.aspectj.lang.ProceedingJoinPoint获取返回类型、参数名称/值等 1、参数值 Object[] args = joinPoint.getArgs(); 2、参数名称 Signature signature = joinPoint.getSignature(); if (signature instanceof MethodSignature) { MethodSignature methodSignature = (MethodSignature) signature; String[] properties = methodSignature.getP 阅读详情

直接看代码:
    private void getKey(ProceedingJoinPoint joinPoint){
        Object[] arguments = joinPoint.getArgs();//传入的参数       
        Signature signature = joinPoint.getSignature();//此处joinPoint的实现类是MethodInvocationProceedingJoinPoint
        MethodSignature methodSignature = (MethodSignature) signature;//获取参数名
        for(int i=0;i<methodSignature.getParameterNames().length;i++){  
          System.out.println(methodSignature.getParameterNames()[i]);//这就是每个参数的名字啦
        }           
    }

   

关键接口是ProceedingJoinPoint ,如果你不知道这个参数是怎么来的,建议先看看AOP方面的资料。

在spring的AOP中,每一个切面都有一个关键参数ProceedingJoinPoint ,这个接口的实际实现类是MethodInvocationProceedingJoinPoint,在这个类中有一个方法如下:

        public String[] getParameterNames() {
            if (this.parameterNames == null) {
                this.parameterNames = parameterNameDiscoverer.getParameterNames(getMethod());
            }
            return this.parameterNames;

        }

这个方法能返回切点的所有参数名称,当然还有一个获取参数类型的方法,此方法在jdk1.78以上亲测可用,其它的jdk还希望各位自己试试,很方便快捷。

有什么不对的地方请大家多多指教,小白我感激不尽!

Spring-AOP 及 AOP获取request各项参数操作 笔者已经把面试题和答案整理成了面试专题文档[外链图片转存中…(img-kcJkrQMq-1711450612835)][外链图片转存中…(img-FsgzqODa-1711450612835)][外链图片转存中…(img-vzCj53eD-1711450612835)][外链图片转存中…(img-2SyxtOD1-1711450612836)][外链图片转存中…(img-11iwZSgQ-1711450612836)]点击传送门,即可免费领取! 阅读详情

相关推荐

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

spring中用joinpoint来访问目标方法的参数

概念:访问目标方法即用jointpoint(@around用poceedingjointpoint)1.获取他们的目标对象信息,如test.component@80387a这种,2.还有获取带参方法的参数,如[Ljava.lang.Object;@183cfe9(想当然我们也可以用对象的arrays.toString()方法将其还原) 3.另外还有获取被增强的方法相关信息 如String test

IT_COOKIE_SAM的博客 3万+

来!简单了解一下计算机发展史!

​ 1936年,英国数学家阿兰・麦席森・图灵提出了一种抽象的计算模型——图灵机( Turing machine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。​ 图灵机是一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。

m0_57290404的博客 2905

spring boot 使用 aop 记录日志

aop

mis_huang的博客 543

Ubuntu终端AI编程助手配置:Claude Code接入DeepSeek模型全攻略

在软件开发领域,AI编程助手正成为提升开发效率的重要工具。其核心原理是通过大语言模型理解自然语言指令,生成、解释或调试代码。这类工具的技术价值在于将AI能力无缝集成到开发工作流中,减少上下文切换,实现更流畅的人机协作。常见的应用场景包括代码生成、错误调试、代码重构和技术问答等。本文聚焦于在Ubuntu系统中,将流行的终端AI助手Claude Code的后端模型从原版Claude替换为DeepSeek。通过配置环境变量实现API端点和模型的映射,这一过程涉及Node.js环境管理、npm包安装和关键环境变量设

weixin_42527654的博客 377

基于陀螺仪航向反馈的轮式机器人PID直线控制

航向角控制是移动机器人实现稳定直线运动的基础技术,其本质是通过实时感知机体朝向偏差并动态调节驱动输出,以抵消机械不对称、轮径误差等固有扰动。该方法依托陀螺仪测量角速度并积分解算航向角,结合离散化PID算法生成补偿性PWM指令,在嵌入式平台(如STM32)上构建低延迟闭环。相比依赖编码器的速度闭环,它规避了轮径标定与安装偏心等误差源,显著提升低成本平台的工程鲁棒性与部署效率。典型应用场景包括教育机器人直线循迹、AGV基础导航模块开发及IMU-PID融合控制原型验证。

web39explorer的博客 1110

AOP获取参数名称

由于项目中打印日志的需要,研究了一下在aop中,获取参数名称的方法。1、jdk1,8中,比较简单,直接通过joinPoint中的getSignature()方法即可获取[java] view plain copySignature signature = joinpoint.getSignature();  MethodSignature methodSignature = (MethodSign...

蜀道难,难于上青天。 2419

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 576

Spring AOP 中的 Signature 对象的理解

在上面的例子中,我们使用 getSignature() 方法获取连接点的方法签名信息,然后判断签名是否为 MethodSignature 类型,如果是,就可以使用 MethodSignature 的 getName() 方法获取方法名称,getReturnType() 方法获取方法返回类型,getParameterTypes() 方法获取方法参数类型列表等。JoinPoint 接口定义了许多方法,可以获取连接点的相关信息,其中 getSignature() 方法可以获取连接点处的方法签名信息。

欲穷java洞的博客 4307

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

【深度学习|地学应用】MODIS AOD产品和HYSPLIT模型的局限性和不确定性?

【深度学习|地学应用】MODIS AOD产品和HYSPLIT模型的局限性和不确定性?

985小水博的摸鱼日常 462

AOP切点表达式什么时候使用全限定类名?

AOP切点表达式中使用全限定类名和简单名称的区别在于是否需要访问注解或参数的具体值。当仅需判断是否存在某个注解时(如@Cacheable),应使用全限定类名(如com.example.annotation.Cacheable);若需要读取注解属性值或方法参数值,则使用简单名称并绑定到方法参数。

taotiezhengfeng的博客 259

LFM线性调频信号的MATLAB仿真

线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。由于线性调频信号占用的频带宽度远大于信息带宽,所以也可以获得很大的系统处理增益。线性调频信号又称鸟声(Chirp)信号,因为其频谱带宽落于可听范围,则听若鸟声,所以又称Chirp扩展频谱(CSS)技术。LFM技术在雷达、声纳技术中有广泛应用,如在雷达定位技术中,它可在增大射频脉冲宽度、提高平均发射功率、加大通信距离同时又保持足够的信号频谱宽度,不降低雷达的距离分辨率。线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 903

AOP获取方法的参数名和参数值

1.背景:在AOP中进行方法的执行监控往往可能会需要获取方法的方法名和方法值,来记录方法的调用情况。 2.实现: MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); // 请求的方法参数值 Object[] args =...

csq676622362的博客 9473

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

aop切面 注解、参数获取方法

在工作中会经常使用aop,这里将aop使用基本方法,获取在切点中使用的获取参数、注解做一个样例。 1、定义需要切面的注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface AnnDemo { String value(); boolean isA...

fajing_feiyue的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

springboot获取方法的参数名

在springboot中获取方法的参数名有两种方式 用来验证的方法,可以看到参数名有两个,一个test,一个num public String getString(String test,Integer num) { return ""; } 1.使用spring的LocalVariableTableParameterNameDiscoverer 定义使用类 private stati...

Mint6的博客 3633

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【AOP】AOP针对不同参数名的参数记录日志流水

/创建日志对象 OperateLogDO operateLogDO = new OperateLogDO();//描述 String desc = signature . getMethod() . getAnnotation(RecordOperate . class) . desc();//订单id Long id = null;//获得方法的参数数组 Object [ ] args = proceedingJoinPoint . getArgs();

Decade_Faiz的博客 1146

java aop 获取参数名,Java AOP JoinPoint不获取参数名称

I'm using Java Spring Mvc and Spring AOP to find the parameter names from the user.I have a controller which get parameters from user and call a service.I have an aspect that running before the servic...

weixin_42347422的博客 724

java aop 获取参数名_SpringAOP中,获取参数名称

由于项目中打印日志的需要,研究了一下在aop中,获取参数名称的方法。1、jdk1,8中,比较简单,直接通过joinPoint中的getSignature()方法即可获取Signature signature = joinpoint.getSignature();MethodSignature methodSignature = (MethodSignature) signature;String[...

weixin_32139169的博客 1876

spring通过aop获取方法参数和参数值

自定义注解 package com.xiaolc.aspect; import java.lang.annotation.*; /** * @author lc * @date 2019/9/10 */ @Documented @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUN...

qq_41988504的博客 3635

AOP高级用法——获取方法的参数和返回值

我们平时在使用springAop的时候,经常是将某一个方法定义为一个切入点,用来做前置,后置或环绕增强,但如果想得到切入点方法的参数,以及它的返回值就需要做一些特定的配置。 普通的切面如下: @Configuration @Aspect public class UserInfoAspect { @Pointcut("execution(* com.*.test(*))") ...

qq_41899174的博客 3万+

aop 获取方法入参_Spring AOP获取切入方法的参数列表

# 1.问题的开始在[Spring AOP中args和arg-names的使用](http://0.0.4.87/)的最后我提到了在Spring AOP的注解方式中的@Pointcut的args配置时,对于args中的变量名必须匹配@Pointcut注解所在方法中的参数名的问题。代码如下:```java@Pointcut("execution(* com.lcifn.spring.aop.bean...

weixin_39587822的博客 1880

AOP中获取方法上的注解/参数

通过aop方式(自定义注解)对方法进行前置/环绕/后置等处理时,可以通过以下方法,在加强处理方法中获取被加强方法的参数和注解等内容 自定义注解 @Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Ope...

xizolv的博客 4433

在SpringAOP中如何获取方法的参数值(实体类)以及参数名

在前几篇的博客中,我利用AOP来做日志管理。感兴趣的同学可以去了解下(附上地址)

会飞的架狗师的博客 3261

在SpringAOP中如何获取请求的参数和参数名

前面的切面按自己的逻辑处理,获取请求参数的方法如下: private Map&lt;String, Object&gt; getFieldsName(JoinPoint joinPoint) throws Exception { String classType = joinPoint.getTarget().getClass().getName(); Stri...

发呆中! 1万+

Spring Aop根据参数名称获取参数的值(JoinPoint根据参数名获取参数的值)

@Aspect @Component public class AuthAspect { /** * 1.controller包及子包下的所有类的所有方法使用aop * 2.RoomController下的list方法不使用aop */ @Pointcut(value = "execution(* com.open.controller..*.*(....

p7+的博客 2万+
上一篇: zookeeper部署及集群测试
下一篇: java inputStream中的int转byte和byte转int的方式和注意事项
敕令
博客等级 码龄10年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值