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

유찬희님의 프로필 이미지
유찬희

작성한 질문수

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

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

@ArgumentResolver = ReturnValueHandler 같은 말인가요?

작성

·

572

1

위 관계도에서

@ResponseBody의 경우에 ReturnValueHandler를

사용한다고 합니다.

@ResponseBody가 있으면 ArgumentResolver를 사용한다고 합니다.

 

이 관계도를 보고

ArgumentResolver와 ReturnValueHandler는

서로 관련없다고 생각했었는데요.

사실은 ArgumentResolver = ReturnValueHandler

이런식이여서

@ResponseBody가 있으면

ArgumentResolver를 사용한다는게

ReturnValueHandler를 사용한다는 말과 같다는뜻인가요?

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 유찬희님^^

제가 헷갈리지 않게 수정을 좀 해야겠네요^^;;

RequestResponseBodyMethodProcessor는 ArgumentResolver도 처리하고, ReturnValueHandler도 같이 처리하도록 만들어진 특별한 클래스 입니다.

둘을 분리할 수도 있지만 내부에서 사용하는 코드가 비슷해서 스프링이 둘을 한번에 처리하는 클래스를 만든 것으로 이해하시면 됩니다.

다음 그림을 보면 해당 클래스가 두 인터페이스를 구현하고 있는 것을 확인하실 수 있습니다.

image감사합니다.

유찬희님의 프로필 이미지
유찬희

작성한 질문수

질문하기