springboot security 权限控制---循环依赖问题

在看权限控制的过程中,使用了security。问题也随之出现。

登录的时候查出了用户的权限串,存到了redis中。

之后每一次请求在拦截器中从redis中拿权限串,封装对象放进security的上下文中供其使用。

但是如果缓存过期消失,或者权限更新需要更新的时候不知道该如何做。

权限更新的时候如果key值固定拼接的字符串,那直接更新redis中的value即可。

但是缓存过期失效的话,拦截器中就会拿不到这个权限串。

此刻就面临,1、强制用户下线重新登录,但是不优雅。

2、在拦截器中拿权限串拿不到就查询。

就这第2个办法,如果单纯注入service或者mapper都会导致循环依赖的发生。

解决办法有二:

1、懒加载

在注入的service上添加@Lazy

2、ApplicationContext

在拦截器中使用这个玩意去拿到service

但是总感觉怪怪的,问题虽然解决了。

如果有大神看到这个文章,能不能说说,针对我上述的这种情况,缓存失效,无感刷新,有没有更好的解决办法呢?问了AI,没什么收获。

相关推荐
抓哇小菜鸡7 小时前
Spring Boot + 本地大模型(Ollama/DeepSeek) + MyBatis-Plus 企业级智能体数据分析系统从零到一源码全解析
spring boot·后端·mybatis
步行cgn9 小时前
MyBatis 批量插入时 Parameter ‘carNum‘ not found 错误详解
mybatis
何以解忧,唯有..18 小时前
深入理解与应对:Redis 缓存雪崩、击穿、穿透三大经典问题
redis·缓存·mybatis
andongni2031 天前
后端参数校验
spring boot·后端·mybatis
Devin~Y2 天前
从内容社区到AI智能客服:Spring Boot + Spring Cloud + Spring AI 全栈实战面试拆解
java·spring boot·redis·elasticsearch·spring cloud·kafka·mybatis
丶意冷3 天前
OceanBase 双模式识别与 MyBatis-Plus 分页方言自动切换实战
mybatis·oceanbase
lv__pf3 天前
spring之整合mybatis【TL spring 12】
mysql·spring·mybatis
ChaHae-In4 天前
MyBatis动态SQL与MyBatis-Plus高效开发指南
数据库·oracle·mybatis
csdn2015_4 天前
springboot +mybatis 查询myql开启程序级别缓存
spring boot·缓存·mybatis
C++、Java和Python的菜鸟5 天前
第1章 项目前置课-Mybatis-Plus
mybatis