添加依赖org.springframework.bootspring-boot-starter-data-redisorg.springframework.bootspring-boot-starter-aopredis.clientsjedis2.8.2配置redis(application-redis.properties)spring.redis.host=localhostspring.redis.port=6379redis.host=localhostredis.port=6379配置redis(RedisConfig)@Configuration@PropertySource("classpath:/application-redis.properties")publicclassRedisConfig{@Value("${redis.host}")privateStringhost;@Value("${redis.port}")privateIntegerport;@BeanpublicJedisjedis(){returnnewJedis(host,port);}}自定义注解(NoRepeatSubmit)@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceNoRepeatSubmit{/***指定时间内不重复提交,单位毫秒*@return*/inttimeOut()default3000;}AOP(RepeatSubmit)@Aspect@ComponentpublicclassRepeatSubmit{@Around("@annotation(noRepeatSubmit)")publicObjectaround(ProceedingJoinPointjoinPoint,NoRepeatSubmitnoRepeatSubmit){//获取注解MethodSignaturesignature=(MethodSignature)joinPoint.getSignature();Methodmethod=signature.getMethod();//获取类、方法StringclassName=method.getDeclaringClass().getName();StringmethodName=method.getName();//组装key用户唯一标识+操作和方法Stringkey="tokenKey"+className+methodName;//获取超时时间inttimeOut=noRepeatSubmit.timeOut();//创建一个对象判断key值是否存在,不存在则抛出,然后添加redis缓存设置失效时间Jedisjedis=newJedis();if(jedis.exists(key)){System.out.println("不重复请求拦截");thrownewRuntimeException("不要重复请求拦截");}else{jedis.set(key,"请求成功");System.out.println("请求成功");jedis.pexpire(键,超时);对象继续=空;尝试{proceed=joinPoint.proceed();}catch(Throwablethrowable){throwable.printStackTrace();}返回进行;}}控制器使用@RestControllerpublicclassMessageController{@CrossOrigin@DeleteMapping("deleteMessage")@NoRepeatSubmit(timeOut=3000)publicStringdeleteMessage(@RequestBodyMessagemessage){inti=messageService.deleteMusic(message.getId());if(i>=1){return"数据删除成功";}else{return"数据删除失败,请重试!";}}@CrossOrigin@PostMapping("updateMessage")@NoRepeatSubmit(timeOut=3000)publicStringupdateMessage(@RequestBodyMessagemessage){if(message.getSex().equals("Male")){message.setSex("1");}elseif(message.getSex().equals("Female")){message.setSex("2");}inti=messageService.updateMusic(message);if(i>=1){return"数据修改成功";}else{return"数据修改失败,请重试!";}}}