DispatcherServlet.properties에 등록된 기본 전략

de_sj_awa·2021년 7월 5일
0
post-custom-banner

스프링 MVC 구성 요소인 DispatcherServlet.properties에 어떤 기본 전략 빈들이 등록되어 있는지 알아보자.

1. HandlerMapping

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping,\
	org.springframework.web.servlet.function.support.RouterFunctionMapping

(1) BeanNameUrlHandlerMapping

URL을 /로 시작하는 이름의 Bean과 매핑시켜주는 HandlerMapping 구현체

(2) RequestMappingHandlerMapping

@Controller 클래스 내 @RequestMapping 어노테이션을 보고 RequestMappingInfo 객체를 만들어주는 HandlerMapping 구현체

(3) RouterFunctionMapping

RouterFunctions를 지원하는 HandlerMapping 구현체

2. HandlerAdapter

org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter,\
	org.springframework.web.servlet.function.support.HandlerFunctionAdapter

(1) HttpRequestHandlerAdapter

HttpRequestHandler를 구현한 클래스를 컨트롤러로 사용할 때(Servlet과 유사) 이를 처리하는 HandlerAdapter 구현체

(2) SimpleControllerHandlerAdapter

Controller 인터페이스를 구현하여 만든 컨트롤러 클래스에 요청을 보낼 때 사용하는 HandlerAdapter 구현체

(3) RequestMappingHandlerAdapter

@Controller 클래스 내 @RequestMapping 어노테이션 핸들러 매핑(RequestMappingHandlerMapping)을 처리하는 HandlerAdapter 구현체

(4) HandlerFunctionAdapter

RouterFunRouterFunctionMapping를 처리하기 위한 HandlerFunctions를 지원하는 HandlerAdapter 구현체

3. HandlerExceptionResolver

org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver,\
	org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\
	org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

(1) ExceptionHandlerExceptionResolver

@ExceptionHandler 어노테이션이 붙은 메소드를 처리하는 HandlerExceptionResolver 구현체

(2) ResponseStatusExceptionResolver

@ResponseStatus 어노테이션이 붙은 메소드가 반환하는 HTTP 상태코드를 처리하는 HandlerExceptionResolver 구현체

(3) DefaultHandlerExceptionResolver

표준 Spring MVC 예외를 해당 HTTP 상태 코드로 변환하는 HandlerExceptionResolver 구현체

4. LocaleResolver

org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

(1) AcceptHeaderLocaleResolver

"accpet-language"라는 요청 헤더에 명시된 기본 Locale 정보를 사용하는 LocalResolver 구현체

5. ThemeResolver

org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver

(1) FixedThemeResolver

고정된 테마를 사용하는 ThemeResolver 구현체. defaultThemeName 속성을 통해 고정된 테마의 이름을 지정할 수 있다.

6. ViewResolver

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

(1) InternalResourceViewResolver

InternalResourceView(서블릿이나 JSP에서 사용)를 지원하는 UrlBasedViewResolver의 하위 클래스. UrlBasedViewResolver는 명시적인 매핑이 없어도 뷰의 이름을 URL로 사용한다. 또한 뷰를 찾을 때 리소스 URL에서 그대로 찾거나, 지정한 prefix와 suffix를 추가하여 찾을 수 있다.

ex) prefix = "/WEB-INF/jsp/", suffix = ". jsp", viewname = "test"-> "/WEB-INF/jsp/test.jsp"

7. RequestToViewNameTranslator

org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator

(1) DefaultRequestToViewNameTranslator

뷰 이름이 명시적으로 지정되지 않았을 때, 요청 URI를 뷰 이름으로 변환해주는 RequestToViewNameTranslator 구현체. 기본 변환한 파일 확장자와 prefix와 suffix를 제거하는 것이다.

8. FlashMapManager

org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager

(1) SessionFlashMapManager

HTTP 세션에서 FlashMap 객체를 저장하고 가져오는 FlashMapManager 구현체

참고

profile
이것저것 관심많은 개발자.
post-custom-banner

0개의 댓글