Springboot基于Guava+自定义注解实现限流功能
之前写过Springboot使用AOP+自定义注解方式实现日志记录、使用Guava中RateLimiter进行限流,那么我们能不能基于Guava+自定义注解实现限流功能呢?
关于实现限流其实还有很多解决方法,如使用redis来实现。这里我不想让项目依赖于redis来增加项目的复杂度,后面有时间的话可以在写一下基于redis的方式。
实现步骤
1、定义一个方法级别的@LimitAspect注解
1 | package cn.pconline.common.annotation; |
2、定义切面和切点
1 | package cn.pconline.common.aspect; |
3、自定义异常
1 | package cn.pconline.common.exeception; |
4、使用方法
1 | @GetMapping("/index") |