返回顶部
首页 > 资讯 > 精选 >SpringAOP怎么修改请求参数列表
  • 165
分享到

SpringAOP怎么修改请求参数列表

2023-07-05 09:07:54 165人浏览 泡泡鱼
摘要

这篇“springaop怎么修改请求参数列表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringAOP怎么修改请求参数

这篇“springaop怎么修改请求参数列表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringAOP怎么修改请求参数列表”文章吧。

SpringAOP修改请求参数列表

今天遇到了一个问题,要批量在前端请求之后修改其中的一个参数值。

我使用SpringAop拦截请求去修改参数值,因为Spring Aop是无法直接根据参数名获取参数的,所以使用MethodSignature首先获取当前方法的参数列表,找到对应参数的下标,然后根据下标获取当前参数对应的值。

代码如下:

private final String execution = "execution(* com.zxy.test.degitaltool.tree.controller.TestController.*(..))";         @Around(execution)    public Object before(ProceedingJoinPoint pjp) throws Throwable {        Method method = ((MethodSignature) pjp.getSignature()).getMethod();        Parameter[] parameters = method.getParameters();        int keyIndex = geTKEyIndex2(parameters, "treeId");        Object[] args = pjp.getArgs();        if (keyIndex != -1) {            String value = args[keyIndex];//找到对应的值            ...        }        return pjp.proceed(args);//修改参数值    }     private int getKeyIndex2(Parameter[] parameters, String key) {        for (int i = 0; i < parameters.length; i++) {            if (Objects.equals(parameters[i].getName(), key)) {                return i;            }        }        return -1;    }

SpringAOP获取参数名参数值

有时候我们在用Spring Aop面向切面编程,需要获取连接点(JoinPoint)方法参数名、参数值。

环境:

Code: 

package com.example.aopdemo.aop; import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.reflect.CodeSignature;import org.springframework.stereotype.Component; import java.util.HashMap;import java.util.Map; @Aspect@Component@Slf4jpublic class DemoAop {         @Around(value = "execution(* com.example.aopdemo..*(..)))")    public Object demoAop(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {                log.debug("执行前:");                Map<String, Object> params = getNameAndValue(proceedingJoinPoint);        for (Map.Entry<String, Object> entry : params.entrySet()) {            System.out.println("name: " + entry.getKey() + " value: " + entry.getValue());        }                Object object = proceedingJoinPoint.proceed();  //执行连接点方法,object:方法返回值                log.debug("执行后:");                return object;    }        Map<String, Object> getNameAndValue(ProceedingJoinPoint joinPoint) {        Map<String, Object> param = new HashMap<>();        Object[] paramValues = joinPoint.getArgs();        String[] paramNames = ((CodeSignature)joinPoint.getSignature()).getParameterNames();        for (int i = 0; i < paramNames.length; i++) {            param.put(paramNames[i], paramValues[i]);        }        return param;    }}

以上就是关于“SpringAOP怎么修改请求参数列表”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: SpringAOP怎么修改请求参数列表

本文链接: https://lsjlt.com/news/351030.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringAOP怎么修改请求参数列表
    这篇“SpringAOP怎么修改请求参数列表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringAOP怎么修改请求参数...
    99+
    2023-07-05
  • SpringAOP如何修改请求参数列表
    目录SpringAOP修改请求参数列表SpringAOP获取参数名参数值总结SpringAOP修改请求参数列表 如题,今天遇到了一个问题,要批量在前端请求之后修改其中的一个参数值。 ...
    99+
    2023-03-07
    SpringAOP请求参数 SpringAOP参数 SpringAOP请求参数列表
  • springAOP实现@Around输出请求参数和返回参数
    目录@Around输出请求参数和返回参数先把我的打印日志代码贴出来测试spring AOP中Around切面处理参数解决的办法具体的代码@Around输出请求参数和返回参数 spri...
    99+
    2024-04-02
  • 怎么通过zuul添加或修改请求参数
    这篇文章主要为大家展示了“怎么通过zuul添加或修改请求参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么通过zuul添加或修改请求参数”这篇文章吧。zuul添加或修改请求参数一、为什么要用...
    99+
    2023-06-20
  • 如何通过zuul添加或修改请求参数
    zuul添加或修改请求参数 一、为什么要用到这个 在基于 springcloud 构建的微服务系统中,通常使用网关zuul来进行一些用户验证等过滤的操作,比如 用户在 header ...
    99+
    2024-04-02
  • php怎么获取请求参数
    在PHP中,有多种方法可以获取请求参数。以下是几种常见的方法:1. 使用`$_GET`和`$_POST`全局变量来获取GET和POS...
    99+
    2023-10-09
    php
  • Vue请求怎么传递参数
    本篇内容介绍了“Vue请求怎么传递参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、get请求get请求没有请求体,传递的参数是添加到u...
    99+
    2023-07-05
  • django怎么获取get请求参数
    在Django中,可以通过`request.GET`属性来获取GET请求参数。`request.GET`是一个类似字典的对象,可以使...
    99+
    2023-10-10
    django
  • php怎么获取get请求参数
    在PHP中,可以通过`$_GET`超全局数组来获取GET请求参数。下面是一个示例代码:```php<phpif(isset($...
    99+
    2023-08-16
    php
  • javascript怎么发送ajax请求参数
    这篇文章主要介绍“javascript怎么发送ajax请求参数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript怎么发送ajax请求参数”文章能帮助大家解决问题。先通过 JavaSc...
    99+
    2023-07-06
  • java怎么获取请求头参数
    在Java中,可以通过HttpServletRequest对象的getHeader方法来获取请求头参数。具体代码如下: import...
    99+
    2023-10-28
    java
  • Node.js中怎么处理POST请求并获取请求参数
    本篇内容介绍了“Node.js中怎么处理POST请求并获取请求参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接收POST请求在Node....
    99+
    2023-07-05
  • uniapp怎么修改默认请求方式
    随着前端技术的不断更新,越来越多的开发者开始尝试使用uniapp进行开发,这款跨平台的开发框架可以让开发者只写一份代码,就可以在多个平台上运行。但是,在使用uniapp进行开发时,可能会遇到一些问题,例如默认的网络请求方式可能并不适合某些情...
    99+
    2023-05-14
  • JavaScript中怎么接收get请求参数
    这期内容当中小编将会给大家带来有关JavaScript中怎么接收get请求参数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.首先想到正则function g...
    99+
    2024-04-02
  • jquery怎么获取get请求的参数
    JQuery是一款非常流行的JavaScript库,它提供了很多方便快捷的方法来操作DOM,实现动画效果,以及处理AJAX请求等等。本文将着重讨论如何利用JQuery获取GET请求的参数。在Web开发中,GET请求是非常常见的一种HTTP请...
    99+
    2023-05-14
  • sql怎么修改表中一整列数据
    要修改表中一整列数据,可以使用UPDATE语句来实现。以下是一个示例: 假设有一个表名为students,其中有一列名为grade,...
    99+
    2024-04-08
    sql
  • Java | 使用切面AOP拦截并修改Controller接口请求参数
    关注common wx: CodingTechWork 引言   在开发过程中,会有一些需求将controller层的一些方法入参进行全量转换,最容易想到的可能是在调用下层service方法时,调用公...
    99+
    2023-09-10
    java 开发语言
  • Oracle12.2怎么修改表的列名
    这篇文章主要介绍“Oracle12.2怎么修改表的列名”,在日常操作中,相信很多人在Oracle12.2怎么修改表的列名问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac...
    99+
    2024-04-02
  • python怎么修改列表元素
    要修改列表元素,可以通过索引来访问和修改列表中的元素。可以直接使用索引来赋值给列表中的元素。下面是修改列表元素的示例代码:pytho...
    99+
    2023-10-18
    python
  • POST请求和GET请求怎么传递和接收解析参数
    本篇内容介绍了“POST请求和GET请求怎么传递和接收解析参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作