본문 바로가기
FullStack/21. Java

[Spring] RequestContextHolder

by nakanara 2023. 2. 15.
반응형

RequestContextHolder

RequestContextHolder는 Spring기반에서 실행 중인 Request 정보를 가져와 사용할 수 있도록 도와주는 유틸성 클래스입니다. 주로 로그 등의 공통 작업 중 Request의 포함되어 있는 정보(쿠키, 세션) 사용에 사용됩니다.

RequestContextHolder의 Http 정보는 Request 시작되는 시점에 생성, 초기화가 진행되고 Servlet이 destroy 되는 시점에 Clean 됩니다. 즉 http 요청을 받아 처리를 시작하는 시점에 정보 설정 -> Http 응답 이후 초기화된다고 보시면 됩니다.

내부적으로는 ThreadLocal에 값을 설정하는 방법으로 동일 요청 Thread에서는 RequestContextHolder을 통해 값에 접근이 가능하지만 다른 Thread에서는 접근이 불가능합니다. (신규 생성 Thread 등)

protected static HttpServletRequest getCurrentRequest() {
  RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
  return ((ServletRequestAttributes) attrs).getRequest();
}

참고

 

반응형

'FullStack > 21. Java' 카테고리의 다른 글

TimeZone 출력(GMT, UTC)  (0) 2023.07.18
Java 메일 읽기  (0) 2023.05.16
인텔리J 톰켓 위치-로그  (0) 2023.01.17
JAVA - HTTP 서비스 포트 찾기  (0) 2022.11.08
Maven 란  (0) 2022.02.15