Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

빅데이터 AI 인공지능 IT 꿀팁 아이팁

Spring : HandlerMapping 본문

카테고리 없음

Spring : HandlerMapping

아이팁 2021. 4. 9. 01:00

 

HandlerMapping

 

웹 요청이 들어올 경우 Dispatcher-Servlet 객체가 요청을 어떤 컨트롤러에게 위임할 것인지를

 

결정해야 하는데 그 요청과 해당 요청을 처리하는 컨트롤러의 매핑을 담당하는 인터페이스입니다.

 

Request 와 Handler 객체 간의 매핑을 정의합니다. 

 

프레임워크에 기본 HandlerMapping 은 

  • BeanNameUrlHandlerMapping
  • RequestMappingHandlerMapping

클래스 입니다.

 

Handler 는 항상 HandlerExecutionChain 인스턴스에 포함되어 실행합니다.

 


 

HandlerMapping 구현체

 

출처 https://blog.woniper.net/370

 

 

 

  • HandlerMapping은 DispatcherServlet에 의해 초기화된다.
  • HandlerMapping은 항상 HandlerExecutionChain을 통해 실행된다.
  • HandlerExecutionChain은 AbstractHandlerMapping 클래스에 의해 생성된다.
  • 기본 HandlerMapping 구현체인 BeanNameUrlHandlerMapping은 AbstractUrlHandlerMapping을 상속한다.
  • 기본 HandlerMapping 구현체인 RequestMappingHandlerMapping 은 AbstractHandlerMethodMapping을 상속한다.

 


 

HandlerMapping 구현 클래스

 

 

  1) SimpleUrlHandlerMapping : 패턴과 컨트롤러 이름을 비교하여, URL 이 패턴에 매칭될 경우 지정 컨트롤러 사용

  2) BeanNameUrlHandlerMapping(default) : URL 과 일치하는 bean 이름의 컨트롤러 사용

  3) ControllerClassNameHandlerMapping : URL 과 매칭되는 클래스 이름을 갖는 빈을 컨트롤러 사용

  4) DefaultAnnotationHandlerMapping : @RequestMapping 어노테이션을 이용 컨트롤러 사용

  참고) web.xml에 <url-pattern> 을 '/path/*'  같이 설정을 할 경우 전체 경로를 다 사용하고 싶으면 HandlerMapping

             설정시 <property name="alwaysUseFullPath" value="true" /> 를 넣어서 설정을 잡는다.

  참고2) 복수개의 HandlerMapping 구현시 property 로 order 를 넣어서 순서를 정해줄 수도 있다.