原创/朱季谦
在登录模块里,当用户完成一次登录会话后,往往需要将其登录成功的信息进行缓存。不同的登录会话,属于不同的会话线程,彼此需要互不影响。这就意味着,登录成功的信息,只属于该次会话线程的本地变量,这时,就可以基于ThreadLocal缓存属于该会话线程的用户信息,类似线程的私有本地变量。
写一个专门缓存会话用户信息的类SessionCsche,在该类里定义一个static修饰的ThreadLocal变量,再定义一个将User信息缓存到ThreadLocal的方法,以及从ThreadLocal取出的方法——
以上,就是基于ThreadLocal实现一个线程隔离缓存变量的场景。除此之外,在DataSource数据源动态切换场景下,也可以基于ThreadLocal实现不同的线程获取到不同的DataSource数据源,进而发起一次数据库访问会话。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。