package com.yasinyt.boss.common.utils;
import java.util.Map;
import java.util.WeakHashMap;
import org.apache.commons.lang3.StringUtils;
/**
* @statement 防止重复提交工具类
* @author TangLingYun
* @data 2017年6月15日
*/
public class CheckRepetitionUtil {
/**防止提交 暂存效验容器*/
private static Map<String,String> repetition = new WeakHashMap<String,String>();
/**效验是否重复提交*/
public static synchronized boolean checkRepetition(String token){
if (repetition.containsKey(token)) {
return true;
}else{
repetition.put(token,StringUtils.EMPTY);
}
return false;
}
/**业务执行完毕移除当前提交状态*/
public static void removeToken(String token){
repetition.remove(token);
}
}
使用进入方法之间 调用checkRepetition方法,方法后finally处理调用removeToken
有兴趣的同学可以实现改造使用AOP 注解切需要防止重复提交的方法。
大量并发请使用redis分布式锁,谢谢