当前位置: 首页 > news >正文

新手做网站遇到的问题以及解决方案wordpress rss 下一页

新手做网站遇到的问题以及解决方案,wordpress rss 下一页,品牌网app下载,网站被k申诉使用AOP注解处理接口幂等性,默认禁止同一用户在上次提交未果后10秒内又重复提交 在原先的sameUrlData的注解上进行了copy新建优化,使用redis去setnx的参数视项目使用点而调整,不一定是每个项目都适合这种取参形式。 源码如下: package com…

使用AOP注解处理接口幂等性,默认禁止同一用户在上次提交未果后10秒内又重复提交

在原先的sameUrlData的注解上进行了copy新建优化,使用redis去setnx的参数视项目使用点而调整,不一定是每个项目都适合这种取参形式。

源码如下:

package com.rs.srm.annotation;/**  *	接口防短时间并发处理
*/
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/** * 一个用户 相同url 同时提交 相同数据 验证 **/  
@Target(ElementType.METHOD)  
@Retention(RetentionPolicy.RUNTIME)  
public @interface NoRepeatData {/*** 设置请求锁定时间 单位秒*/int lockTime() default 10;
}
package com.rs.srm.annotation;import com.alibaba.fastjson.JSON;
import com.rs.common.exception.LockFailException;
import com.rs.common.meta.context.UserContext;
import com.rs.common.meta.service.lock.impl.RedisDistributedLockHandler;
import com.rs.common.vo.ResultDto;
import com.rs.system.shiro.util.LoginUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;@Aspect
@Component
@Slf4j
public class NoRepeatDataImpl {@AutowiredRedisDistributedLockHandler redisDistributedLockHandler;/*** 配置切入点*/@Pointcut("@annotation(com.rs.srm.annotation.NoRepeatData)")public void noRepeatDataCut() {}@Around("@annotation(noRepeatData)")public Object around(ProceedingJoinPoint point,NoRepeatData noRepeatData) throws Throwable {int lockExpire =  noRepeatData.lockTime();//加锁过期时间//开始时间long start = System.currentTimeMillis();String args = JSON.toJSONString(point.getArgs());ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = requestAttributes.getRequest();String url = request.getRequestURL().toString();UserContext u = LoginUtil.getUserContext();MethodSignature signature = (MethodSignature) point.getSignature();//请求的方法名String className = point.getTarget().getClass().getName();String methodName = signature.getName();String paramSign = DigestUtils.md5Hex(url + u.getUserId() + args);log.warn("======request url=>{},param=>{},uid=>{},md5-=>{}",url,args,u.getUserId(),paramSign);try {log.info("【接口加锁参数:{}】",paramSign);redisDistributedLockHandler.lock(paramSign, 1, lockExpire);//过期时间由注解接收Object result = null;try {result = point.proceed();long end = System.currentTimeMillis();log.info("【接口正常执行完成】接口名:{}.{},执行时间:{}毫秒", className, methodName, (end - start));return result;}catch (Exception e){log.error("业务代码执行异常",e);return ResultDto.fail("系统异常");}finally {redisDistributedLockHandler.unlock(paramSign,1);}}catch (LockFailException e){long end = System.currentTimeMillis();log.info("【重复提交已拦截】接口名:{}.{},执行时间:{}毫秒", className, methodName, (end - start));return ResultDto.fail("请勿重复提交数据,请耐心等待!");}}
}

http://www.yayakq.cn/news/380619/

相关文章:

  • 汕头市企业网站建设哪家好99元的wordpress主题
  • 苏州品牌网站设计东莞网站建设17
  • 有了域名怎么建网站联系方式企业网站快速排名
  • 网站后台功能开发做网站多少钱西宁君博专注
  • 东莞网站建设 乐云seo项目网站开发
  • 网站ui设计软件厂家招商
  • 唐山网站建设价格自助网站制作系统源码
  • 百度网站前三名权重一般在多少书画网站 建设方案
  • 云南网站建设设计建立企业网站的详细步骤
  • 网站建设项目规划书seo推广优化外包价格
  • php网站开发淮安招聘网络服务能力
  • 国外企业招聘网站wordpress换主题影响大吗
  • 低价网站建设顺德搞钱路子一天两万
  • 兰州展柜公司网站建设大网站成本
  • 做外贸seo优化的公司网站优化 英文
  • 六安商务网站建设电话5台电脑做视频网站服务器
  • 哪个公司做网站最好成都网站排名 生客seo
  • 洪梅镇仿做网站知名网站建设在哪里
  • 淘宝客网站怎么做推广手机淘宝网页版入口
  • 西宁专业网站建设网站wap怎么做
  • 电商网站前端设计方案重庆旅游景点大全排名
  • 网站外部链接如何建设网站建设售前
  • 南通网站建设苏鹏网络店面设计效果图
  • 网站建设的特色网站设计美工多少
  • 苏州网站开发电话视频模板免费制作
  • 南宁站建站时间网站开发维护者
  • 新网站如何做友情链接网页设计十大排名
  • 做网站如何躲过网警深圳响应式网站建设公司
  • 济宁市兖州区建设局网站触摸网站手机
  • 美容 北京 公司 网站建设厦门网站免费制作