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

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

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

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

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

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

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

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

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

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

解决办法有二:

1、懒加载

在注入的service上添加@Lazy

2、ApplicationContext

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

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

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

相关推荐
CoderYanger15 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CoderYanger3 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)
java·数据库·spring·面试·职场和发展·java-ee·mybatis
真上帝的左手5 天前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis
雪芽蓝域zzs5 天前
第 2 章:整合 MySQL + MyBatis,搭建数据库基础、实体类、Mapper、测试查询
数据库·mysql·mybatis
wljt6 天前
公司二-面试题
java·开发语言·mybatis
VimorphTech6 天前
文本已经改了,旧的音频生成结果还能回写吗?
java·数据库·mybatis
麻瓜code6 天前
双写一致性:为什么是“删缓存“,而不是“改缓存“
java·缓存·mybatis
郭小李7 天前
mybatis 动态 sql
java·sql·mybatis
知守观7 天前
技术考古:iBATIS 2.3.4 时代的持久层,是如何用 Map 玩转 307 个存储过程的?
java·后端·mybatis
captain3767 天前
MyBatis Plus(1)
java·服务器·mybatis