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);
        }
    }
}
相关推荐
胚芽鞘6814 分钟前
查询依赖冲突工具maven Helper
java·数据库·maven
Charlie__ZS10 分钟前
若依框架去掉Redis
java·redis·mybatis
mit6.82416 分钟前
[Meetily后端框架] AI摘要结构化 | `SummaryResponse`模型 | Pydantic库 | vs marshmallow库
c++·人工智能·后端
陈随易29 分钟前
VSCode v1.102发布,AI体验大幅提升
前端·后端·程序员
生无谓43 分钟前
什么是跨域,如何处理跨域
后端
咖啡啡不加糖43 分钟前
RabbitMQ 消息队列:从入门到Spring Boot实战
java·spring boot·rabbitmq
Smilejudy44 分钟前
极具特色的位置运算
后端
码出极致1 小时前
支付线上问题复盘的“5W”框架
后端
玩代码1 小时前
Java线程池原理概述
java·开发语言·线程池
ezl1fe1 小时前
RAG 每日一技(三):不止文本,代码和Markdown如何优雅地分块?
后端