public class SubmitLimitUtil
extends java.lang.Object
| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
SUBMIT_TOKEN_KEY |
| 构造器和说明 |
|---|
SubmitLimitUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static java.lang.String |
buildSubmitLimitKey(javax.servlet.http.HttpServletRequest request,
SubmitLimit submitLimit,
java.lang.String classname,
java.lang.String methodname)
组合生成lockKey
生成规则:用户id+类名+方法名+请求参数签名(对请求头部参数+请求body参数,取SHA1值)
|
static java.lang.String |
buildSubmitLimitKey(org.aspectj.lang.ProceedingJoinPoint joinPoint,
SubmitLimit submitLimit)
组合生成lockKey(通过@AjaxAccess注解提供给前端访问的方法)
生成规则:用户id+类名+方法名+参数个数
|
static void |
checkSubmitLimit(java.lang.String tokenKey,
javax.servlet.http.HttpServletRequest request,
SubmitLimit submitLimit)
检查token在缓存是否已存在,存在则重复执行抛出异常,不存在则加入缓存
|
static javax.ws.rs.core.Response |
error(java.lang.String msg)
输出报错信息
|
static java.lang.reflect.Method |
getClassMethod(java.lang.String className,
java.lang.String method)
获取指定类名和方法名的Method实例
|
static SubmitLimit |
getSubmitLimit(org.aspectj.lang.JoinPoint joinPoint)
获取注解值
|
static void |
removeAsyncKey(java.lang.String submitCacheKey)
异步线程,完成后手动删除
|
public static final java.lang.String SUBMIT_TOKEN_KEY
public static void checkSubmitLimit(java.lang.String tokenKey,
javax.servlet.http.HttpServletRequest request,
SubmitLimit submitLimit)
throws SubmitLimitException
tokenKey - request - submitLimit - SubmitLimitExceptionpublic static SubmitLimit getSubmitLimit(org.aspectj.lang.JoinPoint joinPoint)
joinPoint - public static java.lang.String buildSubmitLimitKey(javax.servlet.http.HttpServletRequest request,
SubmitLimit submitLimit,
java.lang.String classname,
java.lang.String methodname)
throws java.lang.Exception
submitLimit - request - java.lang.Exceptionpublic static java.lang.String buildSubmitLimitKey(org.aspectj.lang.ProceedingJoinPoint joinPoint,
SubmitLimit submitLimit)
throws java.lang.Exception
joinPoint - submitLimit - java.lang.Exceptionpublic static java.lang.reflect.Method getClassMethod(java.lang.String className,
java.lang.String method)
throws java.lang.ClassNotFoundException
className - method - java.lang.ClassNotFoundExceptionpublic static javax.ws.rs.core.Response error(java.lang.String msg)
public static void removeAsyncKey(java.lang.String submitCacheKey)
submitCacheKey -