首页 > 其他分享 >springboot aop 通过参数名称来修改 get请求值

springboot aop 通过参数名称来修改 get请求值

时间:2024-05-31 17:02:54浏览次数:23  
标签:Object springboot aop get args proceedingJoinPoint springframework import org

引入aop

implementation 'org.springframework.boot:spring-boot-starter-aop'

代码实现

`package com.photo.photoking.interceptor;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;

@Aspect
@Component
public class AopTest {

@Around("execution(public * com.photo.photoking.api.*.executePhoto1(..)))")
public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    Object[] args = proceedingJoinPoint.getArgs();
    MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature();
    HandlerMethod handlerMethod = new HandlerMethod(proceedingJoinPoint.getTarget(), methodSignature.getMethod());
    MethodParameter[] methodParameters = handlerMethod.getMethodParameters();
    for (MethodParameter methodParameter : methodParameters) {
        String name = methodParameter.getParameter().getName();
        if ("operationType".equals(name)) {
            Object value = args[methodParameter.getParameterIndex()];
            args[methodParameter.getParameterIndex()] = value + "test!!";
        }
    }
    Object result = proceedingJoinPoint.proceed(args);// 执行切点

    return result;
}

}

标签:Object,springboot,aop,get,args,proceedingJoinPoint,springframework,import,org
From: https://www.cnblogs.com/yezhuqishi/p/18224865

相关文章

  • C# HTTP请求 get post
    C#HTTP请求getpostpublicclassHttpRequestHelper{publicstaticboolCheckValidationResult(objectsender,X509Certificatecertificate,X509Chainchain,SslPolicyErrorserrors){returntrue;}///&l......
  • springboot+seata+nacos+dubbo搭建分布式事务
    一、环境springboot:2.3.1.RELEASEdubbo:2.7.13seata:1.8nacos:zookeeper:3.7.1java11mysql8依赖:以下版本经测试无依赖冲突#父工程springboot版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent......
  • springboot关键注解
    目录标记容器类注解1.@Controller 2.@Service3.@Repository4.@Component 依赖注入注解1.@Autowired2.@Resource@Autowired与@Resource的区别 web相关注解@RequestMapping属性介绍用法示例注意事项@GetMapping和@PostMapping @RestController......
  • nuget添加readme
    提问nuget如何添加readme回答目录csproj其他nuget最佳实践https://learn.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices......
  • springboot基本使用十一(自定义全局异常处理器)
    例如:我们都知道在java中被除数不能为0,为0就会报byzero错误@RestControllerpublicclassTestController{@GetMapping("/ex")publicIntegerex(){inta=10/0;returna;}}打印结果:如何将这个异常进行处理?创建全局异常处理类......
  • 基于springboot的-仓库 管理系统(附:源码+课件)
     项目介绍002:管理员system123456客户表(ID客户名称邮编客户地址客户电话联系人联系人电话开户行账号邮箱)供应商表(ID供应商名称邮编供应商地址供应商电话联系人联系人电话开户行账号邮箱)商品表(ID商品名称供应商产地商品规格商品包装生产批号批准文......
  • 基于springboot+vue的音乐网站
      项目介绍025:前台:http://localhost:8081/#/后台:http://localhost:8080/#/前台账号:wang123后台账号:admin1项目功能音乐播放MV播放用户登录注册用户信息编辑、头像修改歌曲、歌单搜索歌单打分歌单、歌曲评论歌单列表、歌手列表分页显示歌词同步显示音乐收藏......
  • 校园周边美食探索及分享平台,基于 SpringBoot+Vue+MySQL 开发的前后端分离的校园周边美
    目录一.前言二.功能模块2.1. 前台首页功能模块2.2. 用户功能模块2.3. 管理员功能模块三.部分代码实现四.源码下载一.前言美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成......
  • SpringBoot启动时使用外置yml文件
    第一步:打包时排除yml文件<build><resources><resource> <!--排除的文件的路径--><directory>src/main/resources</directory><excludes> <!--排除的文件的名称-->......
  • Springcloud学习笔记68--springboot 整合Caffeine 本地缓存
    一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过Redis这种NoSql作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是Redis这种还是需要网络开销,增......