13.4. Handler mappings
DispatcherServlet 과의 관계를 나타내면 다음과 위와 같이 여러 개의 handlerMapping 객체를 List 형태로 가지고 있습니다. Dispatcher Servlet은 위 그림에 표현하지 않은 다른 객체들도 여럿 가지고 있습니다.
저 중에 딱 Dispatcher Servelt과 HandlerMapping 하나와의 관계를 보겠습니다.
요청을 처리할 커맨드 객체를 찾아서 HandlerExecutionChain 객체에 감싸서 넘겨 줍니다.
HandlerMapping들의 상위 클레스인 AbstractHandlerMapping 과 하위 클레스들의 관계를 살펴보겠습니다.
위와 같은 상속구조를 가지며 HandlerMapping을 아무것도 설정하지 않을 떄는 BeanNameUrlHandlerMapping을 사용합니다.
AbstractHandlerMapping에서 설정할 수 있는 설정들은 다음과 같습니다.
interceptors :: 사용할 인터셉터의 리스트
defaultHandler :: 매칭 하는 핸들러 없을 때 사용할 기본 핸들러
order: 여러 개의 HandlerMapping이 있을 때 그것 들 중에서 어떤 걸로 먼저 핸들러 찾을 지 설정할 때 사용
alwaysUseFullPath :: true로 설정하면 request의 전체 경로를 사용하고, false면 현재 servlet이 매핑 되어 있는 위치에서 부터 경로를 사용합니다.
urlPathHelpe :r: 보통 기본 값 그대로 둔다고 하네요.(using this property, you can
tweak the UrlPathHelper used when inspecting URLs)
urlDecode :: 기본값은 false입니다. hadler mapping에서 적당한 핸들러를 찾기 전에 Request URL을 디코딩 하고 싶을 때 ture로 설정합니다.
lazyInitHandlers :: 싱글톤 스콥의 핸들러들의 객체를 필요로 할 때 생성하고 싶을 때 설정합니다.