ThreadLocal

来源:5-2 Spring MVC开发环境搭建-web.xml配置

行望星烁

2018-03-30

大神 请问一下目前有个业务场景是用户登录以后后台会返回一个token,此时我将token存储到ThreadLocal当中,后面再拦截器在ThreadLocal中并未找到token的值http://img.mukewang.com/szimg/5abe078c0001f0e212080553.jpg

http://img.mukewang.com/szimg/5abe07790001010811090526.jpg

写回答

1回答

Jimin

2018-03-30

你好,你这个的理解是有问题的。

threadLocal是针对线程间封闭的,换句话说,就是在某个线程里往threadLocal放入了内容,在这个线程其他部分可以随时取出来使用。

你这里请求了不同的接口,不同的请求到后台是不同的线程,因此肯定取不到内容。

课程里threadLocal那样使用是ok的,是因为在每个请求进来时,在过滤器里先拿到当前用户写入threadLocal,然后接口处理时可以从threadLocal里随时取出放入的信息,这个都是在一个线程里完成。

你这里token的使用是属于会话(session)级别的,只要用户保持登录状态,就可以一直拿到同一个值。这个和threadLocal完全是两回事,你再看看课程,好好理解一下这里吧。

祝你学习愉快~

1
1
行望星烁
非常感谢大神的耐心回答!
2018-03-30
共1条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程