ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 Model And View로 변환해서 반환함
View Resolver 호출: 뷰 리졸버를 찾고 실행함
View 반환: 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환함
뷰 렌더링: 뷰를 통해서 뷰를 렌더링 함
Dispatcher Servlet
모든 요청을 받고 세부 경로는 각 Controller에게 뿌려주는 프론트 컨트롤러의 역할을 한다.
Request를 각각의 Controller에 위임한다.
View Resolver
스프링 부트는 InternalResourceViewResolver라는 뷰 리졸버를 자동으로 등록하는데, 이 때 application.properties에 등록한 sping.mvc.view.prefix, spring.mvc.view.suffix 설정 정보를 사용해서 등록한다.
위의 등록을 미리 해두었기 때문에 spring mvc 에서는 Model을 파라미터로 받아서 뷰의 논리이름을 반환하는 방식으로 동작이 가능하다.
위와 같은 방식으로 할경우 ModelAndView를 직접 생성해서 반환하지 않아도 되기 때문에 실용적이다.