原文网址:SpringBoot--使用ThreadLocal保存每次请求的用户信息_IT利刃出鞘的博客-****博客
简介
说明
本文介绍如何使用ThreadLocal保存每次请求的用户信息。
保存之后,后边的业务操作就可以获取(Controller或者Service都可以,只要在一个请求中)。
相关网址
也可以使用request的attribute保存每次请求的用户信息,见 :SpringBoot--使用attribute保存每次请求的用户信息_IT利刃出鞘的博客-****博客
代码
用户实体类
package ;
import ;
@Data
public class UserDTO {
private Long userId;
private String userName;
}
定义ThreadLocal
package ;
import ;
public class UserThreadLocal {
/**
* 构造函数私有
*/
private UserThreadLocal() {
}
private static final ThreadLocal<UserDTO> USER_INFO_THREAD_LOCAL =
new ThreadLocal<>();
/**
* 清除用户信息
*/
public static void clear() {
USER_INFO_THREAD_LOCAL.remove();
}
/**
* 存储用户信息
*/
public static void write(UserDTO userDTO) {
USER_INFO_THREAD_LOCAL.set(userDTO);
}
/**
* 获取当前用户信息
*/
public static UserDTO read() {
return USER_INFO_THREAD_LOCAL.get();
}
}
保存属性
上边是文章的部分内容,为便于维护,全文已转移到此网址:SpringBoot-使用ThreadLocal保存每次请求的用户信息 - 自学精灵