官网:https://tomato.springlearn.cn/
如何使用请参考官网地址
1.加入依赖
<dependency>
<groupId>com.github.lxchinesszz</groupId>
<artifactId>tomato-spring-boot-starter</artifactId>
<version>1.0.8.RELEASE</version>
</dependency>
2.自定义异常
public class FastException extends RuntimeException {
private static final long serialVersionUID = 1L;
public FastException(String msg) {
super(msg);
}
}
3.拦截异常,将所有FastException拦截,并以指定类型返回
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
private static final String logExceptionFormat = "异常拦截:code: %s ,detail: %s";
private static Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
// 拦截自定义异常
@ExceptionHandler({FastException.class})
public AjaxResult server500(FastException ex) {
log.error(String.format(logExceptionFormat, 114514, ex.getMessage()));
return AjaxResult.error(114514, ex.getMessage());
}
}
4. 业务类
@Repeat(scope = 5000, message = "操作太快",type = RepeatTypeEnum.FIXED_WINDOW,throwable = FastException.class)
@RequestMapping("/hello")
public String hello(@TomatoToken String msg,@TomatoToken String phone) {
long l = System.currentTimeMillis();
return phone + "--hello:" + msg + "---" + l;
}
正常情况:
异常情况: