Resolver란 무엇인가?

정호석·2022년 5월 4일
0

Resolver의 종류

  1. HandlerMethodArgumentResolver
  2. Argument Resolver

1. HandlerMethodArgumentResolver란?

HandlerMethodArgumentResolver는 Interface로써,Controller의 Argument(Parameter)에
지정된 변수들을, Annotation이나 객체의 Type에 따라서 Resolver를 먼저 거쳐,
실제 Data를 Controller에 넘겨주는 역할을 수행한다.

-HandlerMethodArgumentResolver동작 방식-

Spring에서 Resolver의 동작은 아래와 같은 과정으로 이루어진다.

  1. Client Request 요청
  2. Dispatcher Servlet에서 해당 요청 처리
  3. Client Request에 대한 Handler Mapping
    3.1 RequestMapping에 대한 매칭 (RequestMappingHandlerAdapter가 수행)
    3.2 Interceptor 처리
    3.3 Argument Resolver 처리 <-- Argument Resolver 실행 지점
    3.4 Message Converter 처리
  4. Controller Method invoke

2. Argument Resolver 란?

  • Controller로 들어온 파라미터를 가공하거나 수정 기능을 제공하는 객체이다. 교재에서는 이를 사용해 Controller로 들어온 특정 파라미터에 세션 정보를 가공하여 넣어주었다.

  • Argument Resolver를 Controller 단에서 사용하면 중복 코드(HttpSession에서 세션 로드, HttpServletRequest에서 요청 url 및 ip 정보 로드 등)를 깔끔하게 처리할 수 있다. > 예제를 보면 이 말의 의미를 알 수 있다.

  • 예제에서는 LoginUser 어노테이션이 붙은 SessionUser 객체에 대해 Argument Resolver를 설정해주었다.

profile
welcome

0개의 댓글