스터디-Spring

[스프링 시큐리티] ThreadLocal

일태우 2022. 1. 10. 22:39

java.lang 패키지에서 제공하는 쓰레드 범위 변수

  • 스코프가 쓰레드 이므로 각 쓰레드 내에서만 공유
  • 같은 쓰레드라면 서로 다른 메서드에서도 사용 가능
  • SecurityContextHolder의 기본 전략
public class AccountContext {
private static final ThreadLocal<Account> ACCOUNT_THREAD_LOCAL = new ThreadLocal<>();
public static void setAccount(Account account) {
ACCOUNT_THREAD_LOCAL.set(account);
}
public static Account getAccount() {
return ACCOUNT_THREAD_LOCAL.get();
}
}