获取当前登录信息,是每个后端系统必不可少的功能,本文记载了使用ThreadLocal 获取当前登录信息,大致流程如下:
① 服务端接收到请求后,通过解析token 或者 cookies里面的用户信息,将用户信息存入ThreadLocal 中,这个逻辑一般会写入拦截器或者过滤器中
②业务处理完成后再移除ThreadLocal中的信息,防止爆内存
Utils.java
/**
-
当前登陆信息工具类
-
*/
public class CurrentLoginUtil {//存放当前登陆用户
private static final ThreadLocal currentUsers= new ThreadLocal();
//获取当前登陆信息
public static CurrentUserDTO getCurrentUser(){
return currentUsers.get();
}//获取当前授权id
public static String getCurrentUserId(){CurrentUserDTO currentUserDTO = currentUsers.get(); if(currentUserDTO == null) return null; return currentUserDTO.getCustomerId();
}
public static void setCurrentUser(CurrentUserDTO currentUserDTO){
currentUsers.set(currentUserDTO);
}
//移除当前登陆信息
public static