StudyRepository
article thumbnail
Published 2023. 5. 31. 14:44
스프링 MVC Spring
728x90

 

직접만든 MVC와 스프링 MVC 비교

 

 

 

 

스프링 MVC 구조

 

 

 

 

FrontController -> DispatcherServlet

handlerMappingMap -> HandlerMapping

 

MyHandlerAdapter -> HandlerAdapter

 

ModelView -> ModelAndView

 

viewResolver  -> ViewResolver

 

MyView -> View

 

 

동작 순서
1. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.
2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.
3. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다.

서블릿이 호출되면 HttpServlet 이 제공하는 serivce() 가 호출된다.
스프링 MVCDispatcherServlet 의 부모인 FrameworkServlet 에서 service() 를 오버라이드 해두었다.

FrameworkServlet.service() 를 시작으로 여러 메서드가 호출되면서 DispacherServlet.doDispatch() 가 호출된다.

 

 

 

@RequestMapping

스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었는데 이것이 바로 @RequestMapping 애노테이션을 사용하는 컨트롤러이다

과거에는 스프링 프레임워크가 MVC 부분이 약해서 스프링을 사용하더라도 MVC 웹 기술은 스트럿츠 같은 다른 프레임워크를 사용했었다.

그런데 @RequestMapping 기반의 애노테이션 컨트롤러가 등장하면서, MVC 부분도 스프링의 완승으로 끝이 났다.

 

 

  @RequestMapping
      RequestMappingHandlerMapping
      RequestMappingHandlerAdapter

 

@RequestMapping 의 앞글자를 따서 만든 이름인데, 이것이 바로 지금 스프링에서 주로 사용하는 애노테이션 기반의 컨트롤러를 지원하는 핸들러 매핑과 어댑터이다.

실무에서는 99.9% 이 방식의 컨트롤러를 사용한다.

728x90

'Spring' 카테고리의 다른 글

ArgumentResolver & ReturnValueHandler  (0) 2023.06.02
요청 매핑  (0) 2023.05.31
FrontControllerServlet  (0) 2023.05.30
HandlerAdapter  (0) 2023.05.30
Model 추가  (0) 2023.05.29
profile

StudyRepository

@Minseo26262

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!