1,在pom.xml文件中引入缓存的jar包
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency>
2,自定义一个注解类,将来用在禁止重复提交的方法上
public @interface FormCommit { String name() default "name:"; }
3,自定义一个切面类,利用aspect实现切入所有方法
@Aspect @Configuration public class SubmitAspect { private static final Cache<String, Object> CACHES = CacheBuilder.newBuilder() // 最大缓存 100 个 .maximumSize(100) // 设置缓存过期时间为S .expireAfterWrite(3, TimeUnit.SECONDS) .build(); @Around("execution(public * *(..)) && @annotation(com.ding.web.FormCommit)") public Object interceptor(ProceedingJoinPoint pjp) { MethodSignature signature = (MethodSignature) pjp.getSignature(); Method method = signature.getMethod(); FormCommit form= method.getAnnotation(FormCommit.cl