이전에 만들었던 서블릿 프레임워크와 같은 구조이다!!
스프링 MVC의 프론트 컨트롤러가 DispatcherServlet
이다.
HttpServlet
을 상속받아서 사용하고, 서블릿으로 동작DispatcherServlet
을 서블릿으로 자동등록하며, 모들 경로에 대해서 매핑요청 흐름
HttpServlet
의 service()
가 호출됨DispatcherServlet
의 부모인 FrameworkServlet.service()
가 오버라이딩 되있음FrameworkServlet.service()
를 시작으로, 여러 메서드가 호출되며 DispatcherServlet.doDispatch()
가 호출현재 스프링 컨트롤러는 99,9% 어노테이션 기반으로 동작
@RequestMapping
RequestMappingHandlerMapping
핸들러 매핑RequestMappingHandlerAdapter
핸들러 어뎁터기본 설명
@Controller
:@Component
가 있어서 컴포넌트 스캔의 대상)@RequestMapping
:요청 정보를 매핑, 해당 URL이 호출되면 이 메서드 호출됨ModelAndView
: 모델과 뷰 정보를 담아서 반환클래스 레벨 @RequestMapping
과 메소드 레벨 @RequestMapping
을 조합해서, 하나의 컨트롤러로 사용
(클래스레벨+메소드레벨)
처음에는 @RequestMapping
과 RequestMethod.[method]
를 통해서 메소드 제약
후에는 @GetMapping
,@PostMapping
을 통해 메소드 제약