스프링

Spring RequestContextHolder

E재HO 2023. 7. 23. 20:49

RequestContextHolder란 ? 

 

스프링에서 전역으로 Request에 대한 정보를 가져오고자 할 때 사용하는 유틸 클래스이다.

 

보통 service계층에서 많이 사용되며, 매번 클라이언트에 정보를 요청하는 부담을 줄여준다고 생각한다? 확실하지 않다 . 내 예상임..ㅈㅅ

 

RequestContextHolder.getRequestAttributes()

이렇게 쓰인다.

 

문자 그대로 리퀘스트 안의 정보를 가져오는 거다.

 

그럼 RequestContextHolder는 언제 생기고 어떻게 호출해야 reqeust정보를 가져올 수 있을까?

 

생성

이 클래스는 Servlet이 생성될 때 Http Request가 오는 시점에 생성 및 초기화 되고 Servlet이 초기화될 때 clean된다.

 

탐캣이 올라올 때 쓰레드가 하나 생성되고 Servlet을 만들어 낸다.

그 이후 @Component나 @Service @Repository 등이 만들어진 쓰레드 안의 스프링 컨테이너에 등록되는 것이다.

 

더 필요한 건 더 검색해서 쓰면된다..ㅎㅎ