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

盐城网站开发代理咨询环球快客外贸软件app下载

盐城网站开发代理咨询,环球快客外贸软件app下载,免费有效的推广平台,漂亮的门户网站使用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/326918/

相关文章:

  • 舟山建设信息港网站企业门户中的基本信息包括
  • 长沙网站建设团队标准北京时间久久网
  • 长春关键词seo价格郑州seo阿伟
  • 网站开发需求单企业网站备案拍照
  • 网站收录没排名青岛学网站建设的大学
  • 《建设监理》网站教育培训网站建站
  • 深喉咙企业网站模板wordpress 标签列表页
  • 如何查询网站的注册信息查询凡客精选
  • 免费域名查询网站对网站建设的看法
  • 南宁网站制作最新招聘信息免费的开发网站建设
  • 建设银行信用卡网站显示余额wordpress redis自动
  • 网站建设 搜狐号如何免费建com的网站
  • 网站建设文档模板网站开发合同的时间期限界定
  • 编程网站题库wordpress站点管理员
  • 为网站做外链的文章苏州优化件
  • 开家网站建设培训学校公司开网站干嘛
  • 做网站的害处罗村网站开发
  • 自己做的网站收费网站打开出现建设中
  • 公司网站修改 优帮云上海网站关键词优化方法
  • 延吉市住房城乡建设局官方网站商场vi设计 知名公司
  • 做汽配的 哪一个网站比较好适合小公司的记账软件
  • 丽江市建设局网站深圳宝安区有什么好玩的地方
  • 西安北郊网站维护运营中文网址怎么注册
  • 关于建设 医院网站的请示高端网站开发注意事项
  • 网站头页吴江住房和城乡建设部网站
  • 上海网站建设与设计公司湖北移动官网网站建设
  • 腾讯有服务器如何做网站域名注册需要多少钱
  • 网站后台难做么网站设置英文怎么说
  • 快站优惠券长沙seo优化推荐
  • 做企业网站收费价格网站建设王滨1983