springboot 防抖操作

大佬的代码:看这里

原理:

通过aop切面编程,在调用接口前缓存接口信息,将信息缓存到redis中,在规定时间内重复调用接口,会被拦截请求

有个地方感觉不太合理,在使用中我将其修改了

java 复制代码
	//前略
public class PreventAop {
	
	public String getToken(){
		//该方法仅作参考
		return sra.getRequest().getHeader("Authorization");
	}
	
private void defaultHandle(String token, Prevent prevent,String methodFullName) throws Exception {
		
        long expire = Long.parseLong(prevent.value());
		//此处改为将token作为凭据,避免不通账号调用同一接口导致请求被拦截
        String resp = redisUtil.get(methodFullName+token);
        if (StringUtils.isEmpty(resp)) {
            redisUtil.set(methodFullName+token, requestStr, expire);
        } else {
            String message = !StringUtils.isEmpty(prevent.message()) ? prevent.message() :
                    expire + "秒内不允许重复请求";
            throw new BusinessException(message);
        }
    }
}
相关推荐
ttwuai1 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户8356290780511 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
维天说1 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
用户9931441579841 小时前
微服务框架中获取用户信息
后端
xuanWb1 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何1 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户8356290780511 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
程序员David2 小时前
我让 Claude 从架构文档一路干到代码,踩了三个坑才摸清边界
后端
Zane19942 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端