为什么要清除threaLocalToken呢

来源:3-9 创建OAuth2Filter类(二)

三尺357159

2021-05-30

不是很理解呢,那如果令牌没有过期,本地的又清除的话?

写回答

1回答

慕容8018912

2021-05-30

threaLocalToken是单次web请求时才会创建的,他的作用就是如果需要更新令牌,他会保存一份
更新过的token,然后web请求返回时,AOP会从中取中取出新的token,发送给客户端,用于更新客户端
的token,而threadLocal一定要及时remove,因为“程就是用来执行方法的,正常情况下,如果方法
执行完了,线程对象就会被回收,但是如果在ThreadLoca使用后,并没有调用remove方法来清除这个
对象,而一直保持着引用关系,那么从GC Roots可达性分析的角度来看,这个线程对象一直可达,
那么就不可能被标记为垃圾对象,也就不可能被回收了。而执行完方法后线程其实已经不再使用,
而这种通过ThreadLocal引用的线程对象会一直堆积,就会造成内存泄露。”
而token持久化的保存是在redis中的


1
0

SpringBoot 在线协同办公小程序开发 全栈式项目实战

未来趋势型业务 + 前后端综合技术栈 + 惊艳的细节打磨

1798 学习 · 1915 问题

查看课程