스프링MVC 구조

KJH·2023년 1월 12일
0

SpringMVC1

목록 보기
6/8

스프링 MVC 전체 구조


이전에 만들었던 서블릿 프레임워크와 같은 구조이다!!

DispatcherServlet

스프링 MVC의 프론트 컨트롤러DispatcherServlet이다.

  • 부모 클래스에서 HttpServlet을 상속받아서 사용하고, 서블릿으로 동작
  • 스프링은 DispatcherServlet을 서블릿으로 자동등록하며, 모들 경로에 대해서 매핑

요청 흐름

  • 서블릿이 호출되면, HttpServletservice()가 호출됨
  • 스프링은 DispatcherServlet의 부모인 FrameworkServlet.service()가 오버라이딩 되있음
  • FrameworkServlet.service()를 시작으로, 여러 메서드가 호출되며 DispatcherServlet.doDispatch()가 호출

MVC 시작

현재 스프링 컨트롤러는 99,9% 어노테이션 기반으로 동작

@RequestMapping

  • RequestMappingHandlerMapping 핸들러 매핑
  • RequestMappingHandlerAdapter 핸들러 어뎁터

기본 설명

  • @Controller:
    • 스프링이 자동으로 스프링 빈으로 등록 (내부에 @Component가 있어서 컴포넌트 스캔의 대상)
    • 스프링 MVC에서 어노테이션 기반 컨트롤러로 인식
  • @RequestMapping:요청 정보를 매핑, 해당 URL이 호출되면 이 메서드 호출됨
  • ModelAndView: 모델과 뷰 정보를 담아서 반환

컨트롤러 통합

클래스 레벨 @RequestMapping 과 메소드 레벨 @RequestMapping 을 조합해서, 하나의 컨트롤러로 사용
(클래스레벨+메소드레벨)


실용적인 패턴

처음에는 @RequestMappingRequestMethod.[method]를 통해서 메소드 제약

후에는 @GetMapping,@PostMapping을 통해 메소드 제약


0개의 댓글