kyh코딩 공부 블로그
Spring MVC 패턴의 이해 본문
- HandlerMapping
Client로 부터 들어온 Request를 분석하여 매핑된 Controller가 있는지 확인합니다. - HandlerAdapter
매핑 대상 Controller에게 Request 처리요청을 보냅니다. - ViewResolver
Controller에서 view를 return 했을경우 해당하는 view를 찾아 client에게 return 합니다.
위 그림은 Spring Document에서 제공하는 이해를 위한 그림 입니다. DispatcherServlet 내부에 Servlet WebApplicationContext와 Root WebApplicationContext가 동작하는것으로 보이지만 이 두 ApplicationContext가 바로 process 그림에서 보셨던 스프링 컨테이너(Spring container) 에서 동작하는 컨텍스트라고 이해해주시면 될 것 같습니다.
서블릿 컨테이너가 서블릿의 생명주기를 관리했다면, 스프링컨테이너는 Java object인 빈(Bean)의 라이프 사이클 관리하여 Spring 프레임워크의 특징인 IOC(제어역전)와 DI(의존성주입)을 제공해주는 역할을 합니다.
- 사용자가 URL 을 통해서 Tomcat 서버에 Request 한다
- DispatcherServlet 은 Request 를 처리하기 위한 Controller 를 HandlerMapping 빈 객체에게 검색 요청한다.
- HandlerMapping 은 Client 의 URL 을 이용해서 이를 처리할 Controller 빈 객체를 DispatcherServlet 에게 return 한다.
- DispathcerServlet은 Controller 객체를 처리 할 수 있는 HandlerAdapter 빈 객체에게 요청 처리를 위임한다.
- HandlerAdapter는 Controller에게 알맞은 method 를 호출한다.
- Controller는 비즈니스 로직을 수행 한 후 처리 결과를 HandlerAdapter에게 return 한다.
- HandlerAdapter는 DispatcherServlet에게 Controller의 실행 결과를 ModelAndView 객체로 변환 하여 return 한다.
- DispatcherServlet은 결과를 보여줄 View 를 검색하기 위해 ViewResolver 빈 객체에게 ModelAndView 안의 해당 View 를 검색 요청한다.
- ViewResolver는 ModelAndView안의 View 이름에 해당하는 View객체를 찾거나 생성해서 return 한다.
- JSP를 사용하는 ViewResolver는 매번 새로운 View 객체를 생성해서 DispathcerServlet에게 return한다.
- DispatcherServlet은 ViewResolver가 return한 View 객체에게 request result 생성을 요청한다.
- View 객체는 JSP를 사용하는 경우 JSP를 실행하여 result를 Rendering한 후 Client에게 Rendering된 View를 응답한다.
'코딩연습' 카테고리의 다른 글
javaMaill 이용한 메일 보내기 (0) | 2023.03.24 |
---|---|
CKEDITOR 사용 방법 (0) | 2023.03.09 |
POI 이용한 EXCEL다운로드 (0) | 2023.03.09 |
spring Calendar로 달력만들기 2 jsp부분 (0) | 2023.03.03 |
spring Calendar함수 사용해서 달력 만들기 controller 부분 (0) | 2023.03.03 |