通过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)]点击传送门,即可免费领取! 阅读详情

相关推荐

【AAOS】【源码分析】用户管理(五)-- MUMD介绍

MUMD(多用户多屏显示)是Android Automotive OS为车载多乘员场景设计的功能,支持不同座位用户独立操作各自屏幕。

码农的历程 1511

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

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

IT_COOKIE_SAM的博客 3万+

FPGA高速接口Aurora8B/10B协议实战:从IP核配置到数据流优化

本文详细介绍了FPGA高速接口Aurora8B/10B协议的实战应用,从IP核配置到数据流优化的全流程。通过Aurora8B/10B协议,开发者可以在FPGA间实现高效的数据传输,适用于高速接口设计。文章涵盖了协议基础、IP核配置、AXI4-Stream接口实战技巧以及性能优化策略,帮助读者快速掌握这一关键技术。

weixin_29280657的博客 268

spring boot 使用 aop 记录日志

aop

mis_huang的博客 543

用Unity Wheel Collider做坦克转向?3步实现履带式载具物理效果

本文详细解析了如何利用Unity的Wheel Collider组件实现履带式载具的差速转向物理效果。通过思维转换、场景搭建和核心代码实现三步,将Wheel Collider从模拟轮式车辆转向改造为控制履带扭矩差的系统,并深入探讨了参数调试与真实感提升的方法,帮助开发者打造物理反馈扎实的坦克或特种车辆模拟。

weixin_29009971的博客 223

交通小白首投TRB就中Oral?我的完整时间线与避坑指南(附Editorial Manager实操截图)

本文详细解析了交通领域新手如何高效完成TRB国际会议投稿的全流程,从选题策略到投稿系统实操,再到评审过程解析和常见误区避坑指南。特别针对初次投稿者提供了实用建议,包括时间规划、选题考量、Editorial Manager系统操作技巧,以及如何应对评审意见。文章还分享了从录用到会议参与的关键步骤,帮助研究者提升投稿成功率。

weixin_27303545的博客 386

AOP获取参数名称

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

蜀道难,难于上青天。 2419

基于环形槽谐振器与PIN二极管的频率可重构Vivaldi天线设计与CST仿真研究

摘要 本文设计了一种基于FR4基板的频率可重构Vivaldi天线,通过集成环形槽谐振器(CSRR)和PIN二极管开关实现超宽带(UWB,2-8 GHz)与窄带(2.4/3.5/5.2 GHz)模式的电控切换。天线采用指数渐变槽线结构,结合CSRR的滤波特性和PIN二极管的开关功能,利用CST仿真优化参数。结果表明,UWB模式下S11<-10 dB,窄带模式下目标频点谐振显著,其他频段抑制良好,验证了设计的可行性。该方案为多频段无线通信系统提供了紧凑、低成本的可重构天线解决方案。 关键词:频率可重构天线

huanghm88的专栏 217

Spring AOP 中的 Signature 对象的理解

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

欲穷java洞的博客 4307

【YOLOv12多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1211

置顶必读(2) | 《YOLOv11实战:从入门到深度优化》目录导航篇(持续更新中)

🏆 本文收录于 《YOLOv11实战:从入门到深度优化》 专栏。 本专栏系统梳理并持续复现全网各类 YOLOv11 / YOLO系列改进方案与实战案例,目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。 内容坚持 持续更新 + 深度拆解 + 工程落地导向,不仅讲“怎么改”,更讲“为什么这样改、如何真正落地到项目中”。

**My Coding Family** 11万+

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

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

taotiezhengfeng的博客 259

SAP 供应商寄售(VMI)完整实现方案

摘要:本文详细讲解了SAP系统中供应商寄售(Consignment)和VMI(供应商管理库存)的实现方法。核心逻辑是物料所有权属于供应商,仅在领用时才触发采购。文章包含配置步骤(物料主数据、供应商设置、定价协议、会计科目等)、端到端操作流程(收货、库存查询、领用、结算、付款)、关键差异比较(与普通采购的区别)、核心事务码和数据表。重点说明了寄售流程无需采购订单,通过信息记录维护价格,领用时才产生应付账款的特点,并提供了常见问题解决方案和VMI进阶优化建议。

金牌架构师 1045

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

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

csq676622362的博客 9473

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

fajing_feiyue的博客 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

springboot获取方法的参数名

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

Mint6的博客 3633

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【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、付费专栏及课程。

余额充值