#spring-mvc
글
-
Spring 소스 파헤치기 21: DispatcherServlet — 요청 하나가 응답이 되기까지
HTTP 요청 하나가 Spring MVC 안에서 응답이 되기까지를 DispatcherServlet의 소스로 따라갑니다. 서블릿이 켜질 때 자기 컨텍스트와 전략 객체를 마련하는 과정, 그리고 doDispatch가 핸들러를 찾아 부르고 인터셉터와 예외 처리를 끼워 넣는 순서를 Spring을 처음 보는 사람 기준으로 확인합니다.
-
Spring 소스 파헤치기 22: 핸들러 매핑과 어댑터 — @RequestMapping은 어떻게 찾고 어떻게 부르나
@GetMapping을 붙인 메서드가 언제 어디에 등록되는지, 요청이 오면 후보 가운데 어느 메서드가 뽑히는지, 뽑힌 메서드의 인자는 누가 채우고 반환값은 누가 응답으로 바꾸는지를 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter의 소스로 따라갑니다. 매핑이 모호할 때 나는 두 가지 예외와, 직접 만든 인자 리졸버가 끼어드는 자리도 예제로 확인합니다.
-
Spring 소스 파헤치기 23: 예외 처리, 인터셉터, 뷰 — 요청 처리의 앞뒤와 끝
컨트롤러 메서드의 앞뒤에 끼어드는 HandlerInterceptor가 어떻게 줄을 서고 왜 preHandle을 통과한 것만 afterCompletion을 받는지, 컨트롤러가 던진 예외가 어떤 순서로 HandlerExceptionResolver를 거쳐 @ExceptionHandler 메서드에 닿는지, 그리고 뷰 이름 하나가 ViewResolver와 View를 거쳐 JSP로 forward되기까지를 실제 소스와 예제 출력으로 확인합니다.