작성
·
572
1
위 관계도에서
@ResponseBody의 경우에 ReturnValueHandler를
사용한다고 합니다.
@ResponseBody가 있으면 ArgumentResolver를 사용한다고 합니다.
이 관계도를 보고
ArgumentResolver와 ReturnValueHandler는
서로 관련없다고 생각했었는데요.
사실은 ArgumentResolver = ReturnValueHandler
이런식이여서
@ResponseBody가 있으면
ArgumentResolver를 사용한다는게
ReturnValueHandler를 사용한다는 말과 같다는뜻인가요?
답변 1
1
안녕하세요. 유찬희님^^
제가 헷갈리지 않게 수정을 좀 해야겠네요^^;;
RequestResponseBodyMethodProcessor는 ArgumentResolver도 처리하고, ReturnValueHandler도 같이 처리하도록 만들어진 특별한 클래스 입니다.
둘을 분리할 수도 있지만 내부에서 사용하는 코드가 비슷해서 스프링이 둘을 한번에 처리하는 클래스를 만든 것으로 이해하시면 됩니다.
다음 그림을 보면 해당 클래스가 두 인터페이스를 구현하고 있는 것을 확인하실 수 있습니다.
감사합니다.