인프런 커뮤니티 질문&답변

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

요청 매핑 헨들러 어뎁터 구조

WebMvcConfigurer에 대해서 궁금합니다.

해결된 질문

작성

·

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 부분을 복습해보시는 것을 권장드립니다.

감사합니다.

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

질문하기