Spring MVC 생명주기
17 Mar 2018 | spring mvcSpring 처음 접할때 공부하고 정형화된 틀 안에서 쓰다보니 어떤 구조로 동작하는지 잊고 쓰다가 한 번 소스까서 보면서 정리해봅니다. 특히 정말 SpringBoot 기반으로 개발을 하니깐 DispatchServlet 조차 처음 보는것 같더군요.
다른 웹페이지 자료들을 보면 좀 모양새가 다른데 소스 기준으로 정리하다보니 이런 구조로 그렸네요.
요청 순서
-
요청받은 Request로부터 실행할 Controller 추출을 위해 HandlerMapping 을 통해 실행할 Handler및 Interceptor를 전달
-
Interceptor의 preHandle을 실행
-
HandlerAdapter에 Handler를 전달하여 해당 Controller의 Argument매핑및 Method Invoke 실행하고 결과를 ModelAndView 형태로 반환
-
Interceptor의 postHandle을 실행
-
Resolver를 통해 실제 보여줄 View를 렌더링하여 Response에 Write
-
Interceptor의 afterCompletion 을 실행
Comments