InheritableThreadLocal主要用于子线程创建时,需要自动继承父线程的ThreadLocal变量,方便必要信息的进一步传递。
- 把session存threadLocal的好处
这么说吧,你在业务层多出地方都用到Session信息,那你直接各种request 去取,还是我直接get就拿到好呢?
threadLocal 使得代码耦合度更低,且实现更优雅。
上代码
public class UserUtils { private static ThreadLocal
// 将session保存到ThreadLocal中失败,后续在继续进行。(为空时就再存) protected static void setLoginInfo(Object info) { if (sli.get() != null) { // throw new RuntimeException("login Info allready exists in Context"); } else { sli.set(info); } } protected static void clearLoginInfo() { sli.remove(); } public static Object getLoginInfo() { Object info = sli.get(); System.out.println("当前线程:" + Thread.currentThread().getName() + "--" + (info == null)); return info; }}
调用的时候
UcLoginUserInfo info = (UcLoginUserInfo) UserUtils.getLoginInfo();
本文探讨了在多线程环境中使用ThreadLocal来管理Session信息的优势。通过将Session信息存储在ThreadLocal中,可以降低代码的耦合度,使代码更加优雅。文章提供了一个UserUtils类的具体实现,展示了如何在业务层高效地获取和设置Session信息。
7501

被折叠的 条评论
为什么被折叠?



