해결된 질문
작성
·
494
·
수정됨
1
@Configuration
@RequiredArgsConstructor
public class WebMvcConfig implements WebMvcConfigurer {
private final AppConfig appConfig;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(new AuthResolver(appConfig));
}
}
안녕하세요 제가 지금 프로젝트를 하나 하고있는데요
이 코드에서
resolver.add()를 하면 어떻게 되는건지 궁금합니다.
AuthResolver에 대한 의존성을 추가해주는 코드인가요?
resolvers.add()의 동작방식이 궁금합니다.
그리고 resolver의 정확한 의미가 뭔지 궁금합니다
답변 1
1
안녕하세요. 자바마스터하자님
addArgumentResolvers
메서드는 컨트롤러 메서드로 들어오는 요청의 인자를 해석(resolve)할 수 있는 추가적인 HandlerMethodArgumentResolver
를 등록하는 역할을 합니다. 이 메서드를 통해 등록된 리졸버들은 Spring MVC가 요청을 처리할 때 컨트롤러 메서드의 파라미터를 어떻게 채워야 할지 결정하는 데 사용됩니다.
스프링 컨트롤러를 생각해보면 HttpServletRequest
, Model
은 물론이고, @RequestParam
, @ModelAttribute
같은 애노테이션 그리고 @RequestBody
, HttpEntity
같은 HTTP 메시지를 처리하는 부분까지 받을 수 있는데요. 이것이 모두 ArgumentResolver가 있기 때문에 가능한 것입니다.
적어주신 코드는 AuthResolver가 추가 되어서 컨트롤러에서 Auth와 관련된 결과를 컨트롤러에서 바로 받을 수 있게 됩니다.
추가로 이번 강의에서 설명하는 ArgumentResolver 부분을 복습해보시는 것을 권장드립니다.
감사합니다.