package com.yasinyt.boss.common.utils;
import java.util.Map;
import java.util.WeakHashMap;
import org.apache.commons.lang3.StringUtils;
/**
* @statement 防止重復(fù)提交工具類
* @author TangLingYun
* @data 2017年6月15日
*/
public class CheckRepetitionUtil {
/**防止提交 暫存效驗(yàn)容器*/
private static Map<String,String> repetition = new WeakHashMap<String,String>();
/**效驗(yàn)是否重復(fù)提交*/
public static synchronized boolean checkRepetition(String token){
if (repetition.containsKey(token)) {
return true;
}else{
repetition.put(token,StringUtils.EMPTY);
}
return false;
}
/**業(yè)務(wù)執(zhí)行完畢移除當(dāng)前提交狀態(tài)*/
public static void removeToken(String token){
repetition.remove(token);
}
}
使用進(jìn)入方法之間 調(diào)用checkRepetition方法,方法后finally處理調(diào)用removeToken
有興趣的同學(xué)可以實(shí)現(xiàn)改造使用AOP 注解切需要防止重復(fù)提交的方法。
大量并發(fā)請(qǐng)使用redis分布式鎖,謝謝