
HandlerMapping 컴포넌트 사용RequestMappingHandlerMapping@RequestMapping, @GetMapping, @PostMapping 등이 붙은 메서드를 찾아서 반환
HandlerAdapter 컴포넌트 사용
4-1. 핸들러 어댑터를 통해 핸들러(컨트롤러)를 호출할 때, ArgumentResolver 를 호출
@PostMapping("/user")
public ResponseEntity<String> createUser(@RequestBody UserDto userDto) {
// ...
}
HandlerMethodArgumentResolver 컴포넌트 사용 (각 파라미터에 들어갈 값(Argument) 을 만들어주는 컴포넌트)@RequestBody UserDto userDto처럼, 직접 파라미터를 전달하지 않아도 Spring이 알아서 값을 넣어주는 역할 --> ArgumentResolver가 담당
ArgumentResolver : 요청 데이터 --> Java 파라미터로 변환@RequestBody를 처리할 때 내부적으로 HttpMessageConverter를 사용해 JSON → Java 객체로 변환4-2. 변환된 데이터로 컨트롤러 호출
UserDto userDto = ... // ArgumentResolver가 만들어줌
controller.createUser(userDto); // 호출!
4-3. Controller 의 반환값을 Response 로 변환
HandlerMethodReturnValueHandler : Java 객체 --> Http 응답으로 변환@GetMapping("/user")
public @ResponseBody UserDto getUser() {
return new UserDto("홍길동", 30);
}
여기서 UserDto 객체를 --> JSON 응답으로 만들어주는 것 : ReturnValueHandler


요청 → DispatcherServlet → HandlerMapping → Controller 메서드 찾음
→ HandlerAdapter → [ArgumentResolver] → 파라미터 생성
→ Controller 메서드 실행
→ [ReturnValueHandler] → 반환값을 HTTP 응답으로 변환