当前位置:首页 > 应用开发

AOP Redis自定义注解实现细粒度接口IP访问限制

系列说明

GitHub地址:github.com/stick-i/scb…

目前项目还有很大改进和完善的自定空间,欢迎各位有意愿的义注同学参与项目贡献(尤其前端),一起学习一起进步。解实接口

AOP Redis自定义注解实现细粒度接口IP访问限制

项目的现细限制技术栈主要是:

AOP Redis自定义注解实现细粒度接口IP访问限制

后端 Java + SpringBoot + SpringCloud + Nacos + Getaway + Fegin + MybatisPlus + MySQL + Redis + ES + RabbitMQ + Minio + 七牛云OSS + Jenkins + Docker

AOP Redis自定义注解实现细粒度接口IP访问限制

前端 Vue + ElementUI + Axios(说实话前端我不太清楚)

一般向外暴露的接口,都需要加上一个访问限制,粒度以防止有人恶意刷流量或者爆破,访问访问限制的自定做法有很多种,从控制粒度上来看可以分为:全局访问限制和接口访问限制,义注本文讲的解实接口是接口访问的限制。网站模板

本章讲解的现细限制主要内容在项目中的位置:

scblogs / common / common-web / src / main / java / cn / sticki / common / web / anno /

我的写法是基于 AOP + 自定义注解 + Redis,并且封装在一个单独的粒度模块 common-web 下,需要使用的访问模块只需引入该包,并且给需要限制的自定方法添加注解即可,很方便,义注且松耦合。解实接口

唯一的缺点是该方法只支持在方法上添加注解,不支持给类添加,香港云服务器如果想给一个类的所有方法添加上限制,则必须给该类的所有方法都加上该注解才行。 如果有同学想把这个缺点完善一下,欢迎到文章顶部的git链接中访问并加入我们的项目。

实现步骤

一、引入依赖

实现这个功能我们主要需要 Redis 和 AOP的依赖,redis我们用spring的,然后aop使用org.aspectj下的aspectjweaver,主要就是下面这两个

?

源码下载

分享到:

滇ICP备2023006006号-16