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

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

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

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

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

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

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

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

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

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

解决办法有二:

1、懒加载

在注入的service上添加@Lazy

2、ApplicationContext

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

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

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

相关推荐
ByWalker_20 小时前
web应用技术—MyBatis入门
java·数据库·mybatis·lombok
ylscode2 天前
Cloudflare Workers Cache 深度解析:边缘缓存如何重塑无服务器性能边界
java·spring·mybatis
risc1234564 天前
Roaring Bitmap
java·开发语言·mybatis
Wang's Blog4 天前
JavaWeb快速入门: MyBatis入门与实战
java·mybatis
前端炒粉5 天前
马克思主义基本原理在MyBatis框架中的指导作用探析
mybatis·马克思主义
.Hypocritical.5 天前
MyBatis-Plus笔记
mybatis·mybatisplus
折哥的程序人生 · 物流技术专研5 天前
Java面试通关⑩:MyBatis核心源码全集
mybatis·校招·java面试·orm框架·源码解析·数据库交互·社招
SeeYa-J6 天前
MyBatis(数据持久层,❗ “接口 = SQL执行器”)
mybatis
骑士雄师6 天前
java面试题:jvm ,mybatis
java·jvm·mybatis
风中芦苇啊6 天前
Java MyBatis 实战:如何通过 SQL 查询返回 List<Map> 数据格式
java·sql·mybatis