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;
}
/**業(yè)務執(zhí)行完畢移除當前提交狀態(tài)*/
public static void removeToken(String token){
repetition.remove(token);
}
}
使用進入方法之間 調(diào)用checkRepetition方法蝶涩,方法后finally處理調(diào)用removeToken
有興趣的同學可以實現(xiàn)改造使用AOP 注解切需要防止重復提交的方法理朋。
大量并發(fā)請使用redis分布式鎖,謝謝