Spring

Spring :`RequestScope` 대`RequestContextHolder`

기록만이살길 2021. 3. 14. 07:05
반응형

Spring :`RequestScope` 대`RequestContextHolder`

1. 질문(문제점):

저는 Spring Boot 서비스를 작성 중이며 RequestContext인증 된 사용자 및 요청 ID와 같은 것을 저장할 수있는 컨트롤러 사용할 수있는 일부 형식을 포함하고 싶었습니다 . 그러나 여러 접근 방식이 있습니다.

  1. @RequestScopeBean 사용
  2. 사용하다 ServletRequest.setAttribute
  3. Spring 사용 RequestContextHolder

이러한 접근 방식 간의 장단점은 무엇입니까?

2. 해결방안:

대체로 말하자면, RequestScopeSpring의 마술적인 방법입니다. 내부적 RequestContextHolder으로 ServletRequest.setAttribute. 다르게 말하면 Spring 방식 은 IMHO RequestScope입니다. RequestContextHolderSpring 어노테이션의 마법을 제한하려는 경우 의미가 있습니다. Finaly ServletRequest.setAttribute는 여전히 낮은 수준이며 코드가 Spring이 아닌 응용 프로그램과 호환되도록하려면 주로 사용해야합니다.

또한 처음 두 가지 방법에 대해 Spring은 스레드 범위 객체를 사용하여 요청 컨텍스트에 대한 참조를 저장하므로 프로그래머가 Request 객체를 명시 적으로 수신하지 않는 메서드에서도 Bean에 액세스 할 수 있습니다.

65707326
반응형