JavaWeb项目中调用静态方法获取当前用户信息

JavaWeb项目中调用静态方法获取当前用户信息


用途
[1]简化代码
[2]简化代码
[3]简化代码
[4]将各种渠道的用户信息获取方式统一
思路
其实已经有框架实现这个功能,比如shiro,可以通过获取Subject然后获取Session,之后从session中获取当前用户
but!
如果这个用户是从对外提供的接口处管理呢?如果这个对外提供的接口不需要使用用户名密码登录呢?如果第三方开发不希望不断的维持同一个sessionId,而是通过token的方式表明身份呢?
好吧,记录一下思路
使用一个拦截器统一拦截所有请求,在拦截器中识别请求的用户信息,将用户信息放到ThreadLocal中,这样在请求产生的线程中就可以通过ThreadLocal获取当前的用户信息.之后只需实现一个工具类,在工具类的静态方法中从TheadLocal中获取用户信息就可以了
PS:
[1]注意ThreadLocal的清理,ThreadLocal的声明周期和线程同.所以如果框架使用了线程池,线程不会被真正关闭 后续会出问题.记得在请求完毕后清理ThreadLocal.[至于时机… Filter本身就有两个执行时机好吧.一个是执行前一个是执行后]
[2]因为是思路了,具体的细节还要根据应用项目的实际情况踩坑.所以说的时候忽略了细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纵马饮白虹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值