在前面的总结当中当创建乘车人信息的时候总是需呀用户手动录入memberId 比如 ![](https://img.kancloud.cn/b0/17/b0172280e0f10ab597b88869e6b3d689_591x307.png) 这样是很不友好的,因为用户不可能知道自己的ID是多少况且我们使用的是雪花算法,所以这个时候需要系统自动拿到当前登陆用户的ID是多少,做法有很多种,比如在service当中通过token去拿到对应的用户的id也是可以的,但是不够通用,不能每次都去查训啊,虽然也可以 整个系统当中用到memberId的地方会很多,所以我们今天借助本地线程变量也就是java当中的ThreadLocal来实现线程数据的共享 ### 因为我们需要用到用户信息,又因为我们的common公共模块没有对应的会员返回类 所以先拷贝member会员模块的resp里面的MemberLoginResp.java类过来 ### ![](https://img.kancloud.cn/c5/3c/c53cd9fcd8f938304e0b8a4323a22813_1651x941.png) ### 然后在common公共模块定义一个上下文操作类 在这个类当中讲传递进来的会员返回类对象(也就是会员信息)写入到本地线程共享变量当中去 ![](https://img.kancloud.cn/b7/26/b72696cc046f340b378bca7e91a3c336_1887x990.png) ### 然后我们在common公共模块里面写一个拦截器(是拦截器不是过滤器哈)具体看截图当中的说明 ### ![](https://img.kancloud.cn/4b/a3/4ba3a4bb8b6bb9f1e21e170312aa36a8_1899x1009.png) ### 那么什么时候去使用这个过滤器呢?虽然是在common公共模块定义的但是我们可以在member模块当中去调用,因为这个过滤器不是所有的模块都会被使用到,所以没必要在common模块开启 ### ![](https://img.kancloud.cn/96/8c/968c1cc74a41ae40a7c2099cb6ad7721_1916x994.png) ### 最后就是如何去使用本地线程当中的共享变量问题 ![](https://img.kancloud.cn/2f/03/2f030e53b36250730fafd97de14a040e_1884x968.png) ### 测试一下 ![](https://img.kancloud.cn/9a/4d/9a4ddc12ee9b9a1105a6d24bb42d1e0e_1766x1004.png)