HandlerMapping
dispatcher servlet으로 들어온 모든 요청을 보고 요청에 맞는 Controller를 찾아주는 기능을 수행 한다.
HandlerMapping은 인터페이스를 구현해서 생성한다.
Handler mapping 설정은 dispatcher servlet 설정 파일에서 함
스프링이 제공하는 HandlerMapping 전략은 총 5가지 이다.
HandlerAdapter
HandlerAdapter는 HandlerMapping 을 통해 찾은 Controller를 직접 실행하는 기능을 수행한다.
HandlerAdapter은 인터페이스를 구현해서 생성한다.
HandlerMapping으로 찾은 Controller를 등록된 HandlerAdapter들의 supports 메서드에 대입하며 지원 여부를 살핀다.
부합할 셩우 handler 메서드를 실행하여 modelAndView를 return함
스프링 MVC가 지원하는 Controller는 총 4개 이므로 HandlerAdapter도 4개이다.
DispatcherServlet
Servlet Container에서 들어오는 모든 요청을 프레젠테이션 계층의 제일 앞에 둬서
중앙집중식으로 처리해 주는 프론트 컨트롤러이다.
클라이언트가 요청을 보내면 서블릿 컨테이너가 요청을 받고
이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 프론트 컨트롤러를 스프링에서 정의 하였고
이를 DispatcherServlet이라 함
ViewResolver
view를 선택하는 컨트롤러
컨트롤러에서 매번 뷰를 생성하는 것은 비효율적이므로 스프링에서는 이 작업을 분리 하였다.
컨트롤러는 부의 논리적인 이름만을 리턴하면 이를 ViewResolver가 받아 사용할 view를 찾고 생성하는 작업을 한다.
ViewResolver 는 보통 view를 캐싱하므로 같은 URL의 view가 반복적으로 만들어지지 않는 장점이 있다.
ViewResolver도 하나 이상 등록해서 사용할 수 있는데
이때는 핸들러 매핑처럼 order 프로퍼티를 이용해 적용 순서를 적용해주는 것이 좋다.
ViewResolver는 인터페이스를 구현해서 생성한다.
'스프링' 카테고리의 다른 글
Pointcut 경로 (0) | 2022.10.27 |
---|---|
Spring AOP Advice 5가지 (0) | 2022.10.27 |
Spring AOP (0) | 2022.10.26 |
Spring bean scope (0) | 2022.10.26 |
spring xml, @어노테이션 같이 사용한 DI (0) | 2022.10.25 |