请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ThreadLocal存放用户id

 if (Objects.equals(accessToken, redisAccessToken)) {
            saveUserId(userId);
            return true;
        }

private void saveUserId(Object userId) {
        UserIdUtil.set(Long.valueOf(String.valueOf(userId)));
    }

老师我想问一下这里的saveUserId(userId),是每调用一个接口进行AOP拦截登录校验的时候都要用threadlocal存一次吗。在同一个用户登录的情况下,感觉好麻烦重复覆盖了,因为是单线程。

正在回答 回答被采纳积分+3

2回答

RubinChu 2023-07-09 16:32:47

这个不会覆盖哈,threadlocal是线程维度的

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_穹_0 #1
    老师我的意思是,同一个用户的id都是一样,一个用户登录之后的请求流程应该都是在同一个线程,这样用户登录之后再调用其他接口服务的时候是不是都要执行一次这个saveUserId(userId)函数。
    回复 有任何疑惑可以回复我~ 2023-07-09 16:40:00
  • RubinChu 回复 提问者 qq_穹_0 #2
    用户登录之后的请求流程都在同一线程,这个不是的,每一次请求线程都不一样
    回复 有任何疑惑可以回复我~ 2023-07-09 16:49:47
提问者 qq_穹_0 2023-07-09 16:23:43

111

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信