做博客的时候原本为了省事就没加入评论限制,结果评论被刷屏了,可以用redis在短期时间内进行评论限制。这次更新加上了拦截器,避免了短时间内多次刷评论的情况
引入Redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置文件yaml
spring:
redis:
#redis相关配置
#要连接的redis的ip地址
#若设置了密码也要添加上密码
host: localhost
port: 6379
timeout: 1800000
database: 0
#使用的数据库索引,为0号数据库
自定义一个注解用于拦截指定方法
@Target({
ElementType.METHOD})//指定范围,此注解只能声明在方法上
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LimitComments {
int seconds();
int maxCount();
}
编写拦截器
@Component
public class SessionInterceptor implements HandlerInterceptor {
// 在方法执行前进行拦截
@Autowired
private RedisTemplate redisTemplate