1. HandlerMapping
- 핸들러를 찾아주는 인터페이스
- 디자인 패턴 중에 Strategy 패턴이 적용되어 있다.
2. HandlerAdapter
- 핸들러를 실행하는 인터페이스
- HandlerExceptionResolver
- ViewResolver
- ...
- 요청을 분석한다.
- HandlerMapping에게 위임하여 요청을 처리할 Handler를 찾는다.
- 등록되어 있는 HandlerAdapter중 해당 Handler를 실행할 수 있는 HandlerAdapter를 찾는다.
- 선택된 HandlerAdapter로 Handler의 응답을 처리한다.
- 부가적으로 예외가 발생했다면, 예외 처리 Handler에 요청 처리를 위임한다.
- Handler의 리턴값을 보고 어떻게 처리할지 판단한다.
- View라면 View이름에 해당하는 View를 찾아서 랜더링.
- 데이터라면 Converter를 이용해서 응답.
Handler => Controller
- 응답 View를 View이름으로부터 맵핑해준다.
- ViewResolver를 등록하지 않는다면 Default값으로 InternalResouceViewResolver를 사용한다.